Skip to content

字典操作

成员检查 (Membership)

in 关键字可用于测试字典中是否存在某个

python
>>> d = {"yr": 20, 18: True}
>>> "yr" in d
True

类似地,not in 可用于确定 的缺失。

python
>>> "name" not in d
True

合并 (Union) (Python 3.9+)

|(合并)运算符可用于合并两个字典。

python
>>> d = {"yr": 20, 18: True}
>>> n = {"name": "Ed"}
>>> d | n
{'yr': 20, 18: True, 'name': 'Ed'}

如果两个操作数(字典)之间存在公共键,则右操作数的值优先。

python
>>> d = {"yr": 20, 18: True}
>>> n = {"yr": 15, "name": "Ed"}
>>> d | n
{'yr': 15, 18: True, 'name': 'Ed'}

在上面的示例中,dn 共享一个公共键 yrn 中与 yr 对应的值 (15) 优先。

|=(合并)增强赋值运算符可用于使用另一个字典或 (键, 值) 对的可迭代对象中的键和值来更新字典。

python
>>> d = {"book": "Python", "year": 1990}
>>> dnew = {"author": "Guido"}
>>> d |= dnew
>>> d
{'book': 'Python', 'year': 1990, 'author': 'Guido'}

如果两个字典共享一个公共键,则右操作数中与该键对应的值是更新后的值。

python
>>> d = {"book": "Python", "year": 1990}
>>> dnew = {"author": "Guido", "year": 2000}
>>> d |= dnew
>>> d
{'book': 'Python', 'year': 2000, 'author': 'Guido'}

在上面的示例中,ddnew 共享一个公共键 yeard 中与 year 对应的值 (1990) 被新值 (2000) 更新。

如果右操作数是可迭代对象而不是字典,|= 运算符也适用,如下例所示。

python
>>> d = {"book": "Python", "year": 1990}
>>> inew = [("author", "Guido"), ("year", 2000)]
>>> d |= inew
>>> d
{'book': 'Python', 'year': 2000, 'author': 'Guido'}