乙個字典就是乙個鍵對應乙個單值的對映。如果你想要乙個鍵對映多個值,那麼你就需要將這多個值放到另外的容器中, 比如列表或者集合裡面。比如,你可以像下面這樣構造這樣的字典:
d =e =,
'b' :
}
選擇使用列表還是集合取決於你的實際需求。如果你想保持元素的插入順序就應該使用列表, 如果想去掉重複元素就使用集合(並且不關心元素的順序問題)。
你可以很方便的使用collections
模組中的defaultdict
來構造這樣的字典。defaultdict
的乙個特徵是它會自動初始化每個key
剛開始對應的值,所以你只需要關注新增元素操作了。比如:
fromcollections 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...