一键多值字典,只需将字典的value设为list或set这样的多值类型即可
>>> dic = {}
>>> dic[1] = list(range(10))
>>> dic[1]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
带默认值的字典(defaultdict)
解决的问题:当某个key不在字典内,我们去访问它或直接进行操作的时候会报错,那么设置一个默认值,就可以当我们访问到这个key时直接为其赋一个默认值。
可以传入像int,list,set这样的工厂函数。
>>> dic = {}
>>> dic[0]
Traceback (most recent call last):
File "", line 1, in
KeyError: 0
>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> d[0]
[]
>>> d[1].append(1)
>>> d[1]
[1]
有序字典(OrderedDict)
一般的字典在迭代时不一定会按照插入顺序进行迭代,而在对有序字典中插入元素时会保留插入的顺序。
>>> from collections import OrderedDict
>>> d = OrderedDict()
>>> d['foo'] = 1
>>> d['bar'] = 2
>>> d['spam'] = 3
>>> d['grok'] = 4
>>> for k in d:
... print(k,d[k])
...
foo 1
bar 2
spam 3
grok 4