在 Python 中,List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典) 是四种最常用的数据结构,它们各自有不同的特性和适用场景。
1. List(列表)
特点
-
有序(元素按插入顺序存储)
-
可变(可以修改、添加、删除元素)
-
允许重复元素
-
使用
[]
定义
主要用途
✅ 存储有序数据(如日志记录、用户输入)
✅ 需要修改数据(增删改查)
✅ 允许重复元素(如统计词频)
fruits = ["apple", "banana", "cherry"]
fruits.append("orange") # 添加元素
fruits[1] = "kiwi" # 修改元素
print(fruits) # ['apple', 'kiwi', 'cherry', 'orange']
2. Tuple(元组)
特点
-
有序(元素按插入顺序存储)
-
不可变(创建后不能修改)
-
允许重复元素
-
使用
()
定义
主要用途
✅ 存储不可变数据(如配置项、常量)
✅ 作为字典的键(因为不可变)
✅ 函数返回多个值(如 return (x, y, z)
)
colors = ("red", "green", "blue")
# colors[1] = "yellow" # 报错!元组不可变
# 用于解包
x, y, z = (1, 2, 3)
print(y) # 2
3. Set(集合)
特点
-
无序(不保证元素顺序)
-
可变(可以增删元素)
-
不允许重复元素
-
使用
{}
或set()
定义
主要用途
✅ 去重(自动去除重复元素)
✅ 集合运算(并集、交集、差集)
✅ 快速查找(in
操作比列表快)
unique_numbers = {1, 2, 2, 3, 4}
print(unique_numbers) # {1, 2, 3, 4}(自动去重)
# 集合运算
A = {1, 2, 3}
B = {3, 4, 5}
print(A | B) # 并集 {1, 2, 3, 4, 5}
print(A & B) # 交集 {3}
4. Dictionary(字典)
特点
-
无序(Python 3.7+ 后按插入顺序存储)
-
可变(可以修改、添加、删除键值对)
-
键(key)唯一,值(value)可重复
-
使用
{}
或dict()
定义
主要用途
✅ 键值对存储(如 JSON 数据、数据库查询结果)
✅ 快速查找(O(1)
时间复杂度)
✅ 存储结构化数据(如用户信息 {"name": "Alice", "age": 25}
)
user = {"name": "Alice", "age": 25, "city": "New York"}
print(user["name"]) # Alice
# 添加/修改数据
user["email"] = "alice@example.com"
user["age"] = 26
# 遍历字典
for key, value in user.items():
print(f"{key}: {value}")
总结对比
数据结构 | 可变性 | 有序性 | 允许重复 | 主要用途 |
---|---|---|---|---|
List(列表) | ✔️ 可变 | ✔️ 有序 | ✔️ 允许 | 动态数据存储、增删改查 |
Tuple(元组) | ❌ 不可变 | ✔️ 有序 | ✔️ 允许 | 不可变数据、函数多返回值 |
Set(集合) | ✔️ 可变 | ❌ 无序 | ❌ 不允许 | 去重、集合运算 |
Dictionary(字典) | ✔️ 可变 | ✔️ 有序(Python 3.7+) | ❌ 键唯一 | 键值对存储、快速查询 |
如何选择?
-
需要修改数据? → List 或 Dictionary
-
数据不可变? → Tuple
-
需要去重或集合运算? → Set
-
需要键值对存储? → Dictionary
这些数据结构在 Python 编程中非常关键,合理使用可以提高代码的效率和可读性!