摘要:在 Python 中,字典(dict)是一种可变的键值映射容器,支持高效的查找、修改和扩展。
在 Python 中,字典(dict)是一种可变的键值映射容器,支持高效的查找、修改和扩展。
掌握常用操作,可以在数据处理与程序设计中更高效地使用字典。
一、访问与遍历
1、通过键访问值
使用方括号 根据键访问对应的值,如果键不存在会抛 KeyError:
person = {"name": "Alice", "age": 20}print(person["name"]) # Alice# print(person["gender"]) # ❌ KeyError: 'gender'print(person.get("gender")) # None,不报错print(person.get("gender", "N/A")) # N/A,提供默认值2、遍历字典
字典是可迭代对象,常见遍历方式包括:
遍历键:
person = {"name": "Alice", "age": 20}for k in person.keys:print(k)遍历键值对:
person = {"name": "Alice", "age": 20}for k, v in person.items:print(k, v)3、视图对象的动态特性
keys、values、items 返回的是动态视图对象,不仅能遍历,还支持集合运算:
a = {"x": 1, "y": 2}b = {"y": 3, "z": 4}print(a.keys & b.keys) # {'y'},交集print(a.keys | b.keys) # {'x', 'y', 'z'},并集print(a.keys - b.keys) # {'x'},差集这些视图对象会随着字典变化而更新:
keys = a.keysa["z"] = 5print(keys) # dict_keys(['x', 'y', 'z'])直接对键赋值:
2、删除键值对
使用 pop 或 del:
person = {"name": "Alice", "age": 20}print(person.pop("age")) # 20,返回被删除的值print(person) # {'name': 'Alice'}del person["name"] # 删除指定键print(person) # {}popitem 随机删除最后插入的一项(Python 3.7+ 保证顺序):
d = {"a": 1, "b": 2}print(d.popitem) # ('b', 2)三、拼接与复制
1、字典拼接
从 Python 3.9 开始,可以使用 | 和 |=:
a = {"x": 1, "y": 2}b = {"y": 3, "z": 4}print(a | b) # {'x': 1, 'y': 3, 'z': 4},返回新字典a |= b # 原地更新print(a) # {'x': 1, 'y': 3, 'z': 4}2、浅拷贝
使用 copy 方法:
a = {"x": [1, 2]}b = a.copyb["x"].append(3)print(a) # {'x': [1, 2, 3]},子对象共享引用3、深拷贝
使用 copy.deepcopy 创建完全独立的副本:
import copya = {"x": [1, 2]}b = copy.deepcopy(a)b["x"].append(3)print(a) # {'x': [1, 2]},原字典不受影响请参阅:
四、成员运算
字典支持使用 in / not in 判断键是否存在:
person = {"name": "Alice", "age": 20}print("name" in person) # Trueprint("gender" not in person) # True注意:in 判断的是键,而不是值。
print(20 in person) # False六、常用内置函数与方法
1、内置函数
许多内置函数可直接用于列表:
d = {"c": 3, "a": 1, "b": 2}print(len(d)) # 3,键值对数量print(max(d)) # c,按键比较print(min(d)) # aprint(sorted(d)) # ['a', 'b', 'c'],返回排序后的键列表d2 = {"": 1, "b": 2}print(any(d2)) # Trueprint(all(d2)) # False,因为空字符串是假值2、dict 类的方法
dict 类提供了丰富的方法,用于增删改、访问、视图对象等操作。
详情请参阅:
⚠️ 常见操作误区
1、访问不存在的键会报错
d = {}# print(d["x"]) # ❌ KeyErrorprint(d.get("x", 0)) # ✅ 建议用 get2、键必须唯一,重复键会覆盖
d = {"a": 1, "a": 2}print(d) # {'a': 2}d = {"a": 1, "b": 2}# print(d[0]) # ❌ TypeError小结
字典是 Python 中最灵活的容器之一,既能高效查找,又能灵活扩展,是数据处理中的核心工具。
访问与遍历:直接通过键访问、遍历 keys / values / items,支持集合运算
修改与删除:通过赋值新增或更新,pop、del、popitem 删除
拼接与复制:3.9+ 使用 | 合并,.copy 浅拷贝,copy.deepcopy 深拷贝
成员运算:使用 in 判断键是否存在
内置函数及方法:len、sorted、max、min 以及 dict 类的方法
“点赞有美意,赞赏是鼓励”
来源:开心教育