實現乙個鍵對應多個值的字典 multidict)

2022-02-01 20:15:44 字數 1137 閱讀 1767

乙個字典就是乙個鍵對應乙個單值的對映。如果你想要乙個鍵對映多個值,那麼你就需要將這多個值放到另外的容器中, 比如列表或者集合裡面。比如,你可以像下面這樣構造這樣的字典:

d =

e =,

'b' :

}

選擇使用列表還是集合取決於你的實際需求。如果你想保持元素的插入順序就應該使用列表, 如果想去掉重複元素就使用集合(並且不關心元素的順序問題)。

你可以很方便的使用collections模組中的defaultdict來構造這樣的字典。defaultdict的乙個特徵是它會自動初始化每個key剛開始對應的值,所以你只需要關注新增元素操作了。比如:

from

collections import defaultdict

d =defaultdict(list)d['

a)d['

a)d['

b)d = defaultdict(set)d[

'a'].add(1)d[

'a'].add(2)d[

'b'].add(4)

需要注意的是,defaultdict會自動為將要訪問的鍵(就算目前字典中並不存在這樣的鍵)建立對映實體。 如果你並不需要這樣的特性,你可以在乙個普通的字典上使用setdefault()方法來代替。比如:

d ={} # 乙個普通的字典

d.setdefault('a

)d.setdefault('a

)d.setdefault('b

一般來講,建立乙個多值對映字典是很簡單的。但是,如果你選擇自己實現的話,那麼對於值的初始化可能會有點麻煩, 你可能會像下面這樣來實現:

d ={}

for key, value in

pairs:

if key not in

d: d[key] =

如果使用defaultdict的話**就更加簡潔了:

d =defaultdict(list)

for key, value in

pairs:

Python 字典中一鍵對應多個值

python 字典中一鍵對應多個值 encoding utf 8 print 中國 字典的一鍵多值 print 方案一 list作為dict的值 值允許重複 d1 key 1 value 2 value 2 printd1 獲取值 print 方案一 獲取值 printlist d1 key pri...

Python 字典中一鍵對應多個值

encoding utf 8 print 中國 字典的一鍵多值 print 方案一 list作為dict的值 值允許重複 d1 key 1 value 2 value 2 print d1 獲取值 print 方案一 獲取值 print list d1 key print 方案一 刪除值,會留下乙個...

乙個ViewController對應多個Xib

比例係數開發的大概步驟 1.選著乙個尺寸作為開發設計的基準 2.制定其他螢幕的適配規則 3.特殊的適配給出具體的效果圖 例如攜程的比例係數 5 autosizescalex 1 autosizescaley 1 6 autosizescalex 1.171875 autosizescaley 1.1...