一鍵多值字典,隻需将字典的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