在Python编程的世界里,数据构造与算法是构建高效、坚固顺序的核心。控制这些技能不只可能晋升代码的履行效力,还能使顺序愈加牢固跟易于保护。本文将深刻浅出地介绍Python中罕见的数据构造与算法,并经由过程现实案例演示它们的核心实现技能。
列表是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]
元组是弗成变的序列,常用于数据打包跟保护数据不被不测修改。
# 元组创建
coordinates = (10, 20)
# 拜访元素
print(coordinates[0]) # 输出:10
# 实验修改元素(会抛出异常)
coordinates[0] = 100
凑集是一个无序且不反复的元素凑集,用于去重、交集、并集等操纵。
# 凑集创建
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])
字典是一个键值对构成的无序容器,经由过程键拜访数据。
# 字典创建
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顺序打下坚固的基本。