Skip to main content

字典

初始化

>>> y = {}

方法

>>> english_to_french = {'red': 'rouge', 'blue': 'bleu', 'green': 'vert'}

len

返回字典的条目数量。

>>> len(english_to_french)
3

keys

获取字典中的所有键,这在用 Python 的 for 循环遍历字典内容时常会用到。

>>> list(english_to_french.keys())
['green', 'blue', 'red']

values

获取到存储在字典中的所有值。

>>> list(english_to_french.values())
['vert', 'bleu', 'rouge']

items

可以将字典所有键及其关联值以元组序列的形式返回。

>>> list(english_to_french.items())
[('green', 'vert'), ('blue', 'bleu'), ('red', 'rouge')]
字典视图对象

keysvaluesitems 方法的返回结果都不是列表,而是视图(view)。视图的表现与序列类似,但在字典内容变化时会动态更新。这就是为什么在以上示例中要用 list 函数将结果转换为列表。

del

可用于移除字典中的条目,即键值对。

>>> list(english_to_french.items())
[('green', 'vert'), ('blue', 'bleu'), ('red', 'rouge')]
>>> del english_to_french['green']
>>> list(english_to_french.items())
[('blue', 'bleu'), ('red', 'rouge')]

in

如果要访问的键在字典中不存在,则会被 Python 视为出错。这时可以用 in 关键字先检测一下字典中是否存在该键。

>>> 'red' in english_to_french
True
>>> 'orange' in english_to_french
False

get

如果字典中包含该键,则 get 函数返回与键关联的值;如果不包含则返回函数的第二个参数。

>>> print(english_to_french.get('blue', 'No translation'))
bleu
>>> print(english_to_french.get('chartreuse', 'No translation'))
No translation
info

第二个参数是可选的。如果未给出,则 get 函数会在字典键不存在时返回 None

copy

可以获得字典的副本。

>>> x = {0: 'zero', 1: 'one'}
>>> y = x.copy()
>>> y
{0: 'zero', 1: 'one'}
info

copy 方法会生成字典的浅副本,大多数情况下应该能满足需要了。如果字典值中包含了可修改对象,如列表或其他字典,那就可能需要用到 copy.deepcopy 函数生成深副本。

update

用第二个字典(即参数)的所有键/值对更新第一个字典(即调用者)。如果键在两个字典中都存在,则第二个字典中的值会覆盖第一个字典的值。

>>> z = {1: 'One', 2: 'Two'}
>>> x = {0: 'zero', 1: 'one'}
>>> x.update(z)
>>> x
{0: 'zero', 1: 'One', 2: 'Two'}