📊 Python数据结构完全指南:列表、字典、元组与集合精通

📊 Python数据结构完全指南:列表、字典、元组与集合精通

在Python编程中,数据结构是构建程序的基石。掌握Python内置的四大核心数据结构——列表、字典、元组和集合,是成为Python高手的必经之路。本文将深入解析每种数据结构的特性、用法及最佳实践。

📝 一、列表(List):有序的序列容器

列表是Python中最常用的数据结构,它是一个有序、可变、允许重复元素的序列。

# 创建列表
fruits = ['apple', 'banana', 'cherry']
numbers = [1, 2, 3, 4, 5]
mixed = [1, 'hello', 3.14, True]

# 列表基本操作
fruits.append('orange')      # 添加元素
fruits.insert(1, 'grape')    # 插入元素
fruits.remove('banana')      # 删除元素
last = fruits.pop()          # 移除并返回最后一个元素
fruits.sort()                # 排序
fruits.reverse()             # 反转

# 列表切片
print(fruits[0:2])   # 前两个元素
print(fruits[-2:])   # 最后两个元素
print(fruits[::2])   # 每隔一个取一个

🗂️ 二、字典(Dict):键值对映射

字典是Python中唯一的映射类型,通过键值对存储数据,查找效率极高(O(1))。

# 创建字典
student = {
    'name': '张三',
    'age': 20,
    'grade': 'A'
}

# 字典基本操作
student['score'] = 95        # 添加/修改键值对
age = student.get('age')     # 安全获取值
student.update({'city': '北京', 'hobby': '编程'})

# 遍历字典
for key in student:
    print(f"{key}: {student[key]}")

for key, value in student.items():
    print(f"{key}: {value}")

# 字典推导式
squares = {x: x**2 for x in range(6)}

📦 三、元组(Tuple):不可变序列

元组与列表类似,但元组一旦创建便不可修改,这种不可变性使元组更安全、更快。

# 创建元组
coordinates = (10, 20)
colors = ('red', 'green', 'blue')
single = ('hello',)  # 单元素元组需要逗号

# 元组解包
x, y = coordinates
print(f"x={x}, y={y}")

# 元组作为字典键(列表不行)
locations = {
    (0, 0): '原点',
    (10, 20): '目标点'
}

# 元组方法
count = colors.count('red')  # 计数
index = colors.index('blue') # 查找索引

🔢 四、集合(Set):无序唯一元素集

集合是一个无序、不重复元素的集合,非常适合去重和集合运算。

# 创建集合
s1 = {1, 2, 3, 3, 3}  # 自动去重,结果为 {1, 2, 3}
s2 = set([1, 2, 2, 3, 4])

# 集合运算
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}

print(a | b)  # 并集: {1, 2, 3, 4, 5, 6}
print(a & b)  # 交集: {3, 4}
print(a - b)  # 差集: {1, 2}
print(a ^ b)  # 对称差集: {1, 2, 5, 6}

# 集合方法
s1.add(5)           # 添加元素
s1.discard(2)       # 删除元素(不存在不报错)
s1.remove(3)        # 删除元素(不存在报错)
s1.pop()            # 随机移除一个元素

🎯 五、数据结构选择指南

数据结构有序性可变性重复元素适用场景
列表(List) 需要有序序列的场景
元组(Tuple) 数据不应被修改的场景
字典(Dict) ❌(3.7+有序) ❌(键唯一) 键值映射、快速查找
集合(Set) 去重、集合运算

🚀 六、高级技巧与最佳实践

# 1. 列表vs元组性能对比
import timeit

# 列表创建更慢
list_time = timeit.timeit('lst = [1, 2, 3, 4, 5]', number=1000000)
tuple_time = timeit.timeit('tup = (1, 2, 3, 4, 5)', number=1000000)
print(f"列表: {list_time:.4f}s, 元组: {tuple_time:.4f}s")

# 2. 字典默认值
from collections import defaultdict
counts = defaultdict(int)
for char in "hello world":
    counts[char] += 1

# 3. 集合去重保留顺序
items = [3, 1, 2, 3, 2, 1]
unique_ordered = list(dict.fromkeys(items))  # [3, 1, 2]

# 4. 多重赋值
a, b, c = [1, 2, 3]
a, *rest = [1, 2, 3, 4]  # a=1, rest=[2,3,4]

📌 总结

Python的四大数据结构各具特色:

  • 列表:灵活多变,适合需要频繁修改的有序数据
  • 元组:安全高效,适合作为不可变数据或字典键
  • 字典:查找神器,键值对映射场景的首选
  • 集合:去重利器,集合运算的不二之选

掌握这些数据结构的特性和最佳实践,将帮助你写出更高效、更Pythonic的代码。记住:选择正确的数据结构,往往比优化算法更重要!

本文内容由AI生成,仅供参考学习。

posted @ 2026-03-22 23:34  码小小小仙  阅读(5)  评论(0)    收藏  举报