Python 字典操作详解
字典(Dictionary)是 Python 中一种非常重要且常用的数据结构。它以键值对 (key-value pair) 的形式存储数据,类似于现实生活中的字典,通过查找“键” (key) 来获得对应的“值” (value)。 本教程将带你了解 Python 字典的常见操作,并结合示例代码,帮助你快速上手。
1. 成员检查 (Membership)
in
关键字用于检查某个 键
是否存在于字典中。
>>> d = {"yr": 20, 18: True}
>>> "yr" in d
True
这段代码的意思是,我们创建了一个名为 d
的字典,然后使用 in
关键字来判断键 "yr"
是否存在于字典 d
中。因为 "yr"
确实是 d
的一个键,所以返回 True
。
与 in
类似, not in
关键字用于检查某个 键
是否不存在于字典中。
>>> "name" not in d
True
由于字典 d
中没有键 "name"
,所以 not in
返回 True
。
小贴士: in
和 not in
操作符只能用来检查键是否存在,不能直接检查值。 如果要检查值是否存在,需要遍历字典的所有值,或者使用其他方法。
2. 字典合并 (Union) (Python 3.9+)
从 Python 3.9 开始,你可以使用 |
运算符来合并两个字典。
>>> d = {"yr": 20, 18: True}
>>> n = {"name": "Ed"}
>>> d | n
{'yr': 20, 18: True, 'name': 'Ed'}
这个例子展示了如何使用 |
运算符将字典 d
和 n
合并成一个新的字典。 新的字典包含了 d
和 n
中的所有键值对。
键冲突处理: 如果两个字典有相同的键,右侧字典 (也就是 |
后面的字典) 的值会覆盖左侧字典的值。
>>> d = {"yr": 20, 18: True}
>>> n = {"yr": 15, "name": "Ed"}
>>> d | n
{'yr': 15, 18: True, 'name': 'Ed'}
在这个例子中,字典 d
和 n
都有键 "yr"
。 合并后的字典中,"yr"
对应的值是 n
中的值 (15),而不是 d
中的值 (20)。
增强赋值合并: |=
运算符可以用来更新字典。它会将右侧字典中的键值对添加到左侧字典中。
>>> d = {"book": "Python", "year": 1990}
>>> dnew = {"author": "Guido"}
>>> d |= dnew
>>> d
{'book': 'Python', 'year': 1990, 'author': 'Guido'}
这个例子中,d |= dnew
会将 dnew
中的键值对添加到 d
中。
键冲突处理 (再次强调): 如果两个字典有相同的键,右侧字典的值会覆盖左侧字典的值。
>>> d = {"book": "Python", "year": 1990}
>>> dnew = {"author": "Guido", "year": 2000}
>>> d |= dnew
>>> d
{'book': 'Python', 'year': 2000, 'author': 'Guido'}
注意,d
中 "year"
的值从 1990 更新为 2000。
|=
运算符还可以与包含 (键, 值) 对的可迭代对象一起使用,例如列表或元组的列表。
>>> d = {"book": "Python", "year": 1990}
>>> inew = [("author", "Guido"), ("year", 2000)]
>>> d |= inew
>>> d
{'book': 'Python', 'year': 2000, 'author': 'Guido'}
在这个例子中,inew
是一个包含元组的列表,每个元组代表一个键值对。 d |= inew
将 inew
中的键值对添加到 d
中。 同样,如果键冲突,右侧的值会覆盖左侧的值。
in
和not in
用于检查键是否存在。|
运算符用于合并字典 (Python 3.9+)。|=
运算符用于更新字典 (Python 3.9+)。- 当键冲突时,右侧字典 (或可迭代对象) 的值优先。