引言
在Python編程的世界裡,數據構造與演算法是構建高效、堅固順序的核心。控制這些技能不只可能晉升代碼的履行效力,還能使順序愈加牢固跟易於保護。本文將深刻淺出地介紹Python中罕見的數據構造與演算法,並經由過程現實案例演示它們的核心實現技能。
數據構造
列表(List)
列表是Python中最常用的數據構造之一,它是一個有序且可變的序列。列表支撐靜態增刪改查,可能存儲差別範例的元素。
# 列表創建
numbers = [1, 2, 3, 4, 5]
# 拜訪元素
print(numbers[0]) # 輸出:1
# 修改元素
numbers[1] = 100
# 刪除元素
del numbers[1]
# 增加元素
numbers.append(6)
# 切片操縱
sliced_list = numbers[1:4]
元組(Tuple)
元組是弗成變的序列,常用於數據打包跟保護數據不被不測修改。
# 元組創建
coordinates = (10, 20)
# 拜訪元素
print(coordinates[0]) # 輸出:10
# 實驗修改元素(會拋出異常)
coordinates[0] = 100
湊集(Set)
湊集是一個無序且不重複的元素湊集,用於去重、交集、並集等操縱。
# 湊集創建
unique_numbers = {1, 2, 3, 4, 5}
# 增加元素
unique_numbers.add(6)
# 刪除元素
unique_numbers.discard(3)
# 交集
intersection = unique_numbers.intersection([1, 2, 3])
# 並集
union = unique_numbers.union([3, 4, 5])
字典(Dictionary)
字典是一個鍵值對構成的無序容器,經由過程鍵拜訪數據。
# 字典創建
person = {'name': 'Alice', 'age': 25}
# 拜訪值
print(person['name']) # 輸出:Alice
# 修改值
person['age'] = 30
# 刪除鍵值對
del person['name']
演算法
排序演算法
冒泡排序跟疾速排序是罕見的排序演算法。
# 冒泡排序
def bubble_sort(lst):
n = len(lst)
for i in range(n):
for j in range(0, n-i-1):
if lst[j] > lst[j+1]:
lst[j], lst[j+1] = lst[j+1], lst[j]
# 疾速排序
def quick_sort(lst):
if len(lst) <= 1:
return lst
pivot = lst[len(lst) // 2]
left = [x for x in lst if x < pivot]
middle = [x for x in lst if x == pivot]
right = [x for x in lst if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
查抄演算法
線性查抄跟二分查抄是罕見的查抄演算法。
# 線性查抄
def linear_search(lst, target):
for i, item in enumerate(lst):
if item == target:
return i
return -1
# 二分查抄
def binary_search(lst, target):
low, high = 0, len(lst) - 1
while low <= high:
mid = (low + high) // 2
if lst[mid] < target:
low = mid + 1
elif lst[mid] > target:
high = mid - 1
else:
return mid
return -1
結論
經由過程本文的介紹,信賴讀者曾經對Python編程中的數據構造與演算法有了更深刻的懂得。控制這些核心實現技能,將為編寫高效、堅固的Python順序打下堅固的基本。