dict
从其他映射(如其他字典)或键值对序列创建字典。
基本的字典操作
- len(d)返回字典d包含的项(键值对)数。
- d[k]返回与键k相关联的值。
- d[k] = v将值v关联到键k。
- del d[k]删除键为k的项。
- k in d检查字典d是否包含键为k的项。
将字符串格式设置功能用于字典
>>> phonebook {'Beth': '9102', 'Alice': '2341', 'Cecil': '3258'}
>>> "Cecil's phone number is {Cecil}.".format_map(phonebook)
"Cecil's phone number is 3258."
字典方法
-
clear方法
clear删除所有的字典项,这种操作是就地执行的(就像list.sort一样),因此什么都不返回(或者说返回None)。
-
copy方法
copy返回一个新字典,其包含的键值对与原来的字典相同(这个方法执行的是浅复制,因为值本身是原件,而非副本)。
当替换副本中的值时,原件不受影响。然而,如果修改副本中的值(就地修改而不是替换),原件也将发生变化
为避免这种问题,一种办法是执行深复制,即同时复制值及其包含的所有值,等等。为此,可使用模块copy中的函数deepcopy。
-
fromkeys方法
fromkeys创建一个新字典,其中包含指定的键,且每个键对应的值都是None。
>>> {}.fromkeys(['name', 'age']) {'age': None, 'name': None}
而是直接对dict(前面说过,dict是所有字典所属的类型。类和类型将在第7章详细讨论)调用方法fromkeys。
如果你不想使用默认值None,可提供特定的值。>>> dict.fromkeys(['name', 'age']) {'age': None, 'name': None} >>> dict.fromkeys(['name', 'age'], '(unknown)') {'age': '(unknown)', 'name': '(unknown)'}
-
get
使用get来访问不存在的键时,没有引发异常,而是返回
None
。你可指定“默认”值,这样将返回你指定的值而不是None。 -
items方法
items返回一个包含所有字典项的列表,其中每个元素都为(key, value)的形式。字典项在列表中的排列顺序不确定。
返回值属于一种名为字典视图的特殊类型。字典视图可用于迭代(迭代将在第5章详细介绍)。另外,你还可确定其长度以及对其执行成员资格检查。视图的一个优点是不复制,它们始终是底层字典的反映,即便你修改了底层字典亦如此。
-
keys方法
keys返回一个字典视图,其中包含指定字典中的键。
-
pop方法
pop可用于获取与指定键相关联的值,并将该键值对从字典中删除。
>>> d = {'x': 1, 'y': 2} >>> d.pop('x') 1
-
popitem方法
popitem类似于list.pop,但list.pop弹出列表中的最后一个元素,而popitem随机地弹
-
setdefault方法
setdefault它获取与指定键相关联的值,setdefault还在字典不包含指定的键时,在字典中添加指定的键-值对。
-
update方法
update使用一个字典中的项来更新另一个字典。
-
values方法
values返回一个由字典中的值组成的字典视图。不同于方法keys,方法values返回的视图可能包含重复的值。