这三个是 Python 最常用的 collections,每个都适合不同的需求。关键区别是可变性、排序 和如何访问元素。
List — 有序、可变序列
python
fruits = ["apple", "banana", "cherry"]
fruits[0]
fruits.append()
fruits[] =
(fruits)
对于会改变的有序集合,使用 list — 添加、删除、重新排序项目。
point = (3, 4)
point[0] # 3 — index access (like a list)
point[0] = 5 # ❌ TypeError — tuples are IMMUTABLE
x, y = point # unpacking — common use
对于不应更改的固定值组,使用 tuple — 坐标、记录、返回多个值的函数。由于不可变,tuple 也可以是 dict key,并且内存效率略高。
user = {"name": "Ann", "age": 30}
user["name"] # "Ann" — access by KEY, not index
user["email"] = "[email protected]" # mutable — add/update
user.get("phone", "N/A") # safe access with a default
for k, v in user.items(): ... # iterate key-value pairs
使用 dict 将键映射到值以按名称进行快速查找 (O(1))。从 Python 3.7 开始,dict 保留插入顺序。
List Tuple Dict
Mutable? yes no yes
Ordered? yes yes yes (insertion, 3.7+)
Access by index index key
Syntax [1, 2] (1, 2) {"k": v}
Use for changing seq fixed record key→value lookup
Dict key? no yes no
选择正确的 collection 是一个基本的、日常的 Python 决策,影响正确性、性能和意图。
List 用于可变的有序数据,tuple 用于固定的/不可变的记录(和 dict key),dict 用于快速的基于键的查找 — 使用合适的会传达意图(tuple 表示