天天看點

defaultdict python_python:一鍵多值字典,有序字典(OrderedDict),帶預設值的字典(defaultdict)...

一鍵多值字典,隻需将字典的value設為list或set這樣的多值類型即可

>>> dic = {}

>>> dic[1] = list(range(10))

>>> dic[1]

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

defaultdict python_python:一鍵多值字典,有序字典(OrderedDict),帶預設值的字典(defaultdict)...

帶預設值的字典(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]

defaultdict python_python:一鍵多值字典,有序字典(OrderedDict),帶預設值的字典(defaultdict)...

有序字典(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