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}})