天天看點

python defaultdict轉list_Python實用技法第5篇:一鍵多值字典:defaultdict

1、需求

我們想要一個能将鍵(key)映射到多個值的字(即所謂的一鍵多值字典)

2、解決方案

字典是一種關聯容器,每個鍵都映射到一個單獨的值上。如果想讓鍵映射到多個值,需要将這些多個值儲存到另一個容器(清單或者集合)中。

可以這樣建立字典:

d={

‘a’:[1,2,3],

'b':[4,5]

}

或者這樣建立:

d={

'a':{1,2,3},

'b':{4,5}

}

要使用清單還是集合完全取決應用的意圖。如果希望保留元素插入的順序,就用清單,如果希望消除重複元素(并且不在意他們的排序),就用集合。

為了能友善的建立這樣的字典,可以利用collections子產品中的defaultdict類。defaultdict的一個特點就是它會自動初始化第一個值,這樣隻需關注添加元素即可:

from collections import defaultdict

d=defaultdict(list)

d['a'].append(1)

d['a'].append(2)

d['b'].append(4)

print(d)

d=defaultdict(set)

d['a'].add(1)

d['a'].add(2)

d['b'].add(4)

print(d)

Python資源分享qun 784758214 ,内有安裝包,PDF,學習視訊,這裡是Python學習者的聚集地,零基礎,進階,都歡迎

結果:

defaultdict(, {'a': [1, 2], 'b': [4]})

defaultdict(, {'a': {1, 2}, 'b': {4}})