91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何在字典中將鍵映射到多個值上

發布時間:2021-08-09 09:26:18 來源:億速云 閱讀:135 作者:小新 欄目:開發技術

這篇文章主要介紹了Python如何在字典中將鍵映射到多個值上,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

問題:一個能將鍵(key)映射到多個值的字典(即所謂的一鍵多值字典[multidict])

解決方案:如果想讓鍵映射到多值,需要將這多個值保持到另一個容器如列表或集合中;

>>> d={'a':[1,2,3],'b':[4,5]}
>>> d
{'b': [4, 5], 'a': [1, 2, 3]}
>>> e={'a':{1,2,3,3},'b':{4,5}}
>>> e
{'b': {4, 5}, 'a': {1, 2, 3}}
>>> f={'a':[1,2,3,3],'b':[4,5]}
>>> f
{'b': [4, 5], 'a': [1, 2, 3, 3]}
>>>

更方便的創建這樣的字典是利用collections模塊中的defaultdict類。defaultdict的一個特點是它會自動給字典初始化第一個值,這樣只需添加元素即可。例如:

from collections import defaultdict
d=defaultdict(list) #創建一鍵多值的字典,key的value是list類型
d['a'].append(1)
d['a'].append(2)
d['a'].append(2)
d['b'].append(4)
c=defaultdict(set) #創建一鍵多值的字典,key的value是set類型
c['a'].add(1)
c['a'].add(2)
c['a'].add(2)
c['b'].add(4)
print('key的value是list類型的字典:',d)
print('key的value是set類型的字典:',c)
>>> ================================ RESTART ================================
>>>
key的value是list類型的字典: defaultdict(<class 'list'>, {'b': [4], 'a': [1, 2, 2]})
key的value是set類型的字典: defaultdict(<class 'set'>, {'b': {4}, 'a': {1, 2}})
>>>

關于defaultdict需要注意的一點,他會自動創建字典表項以待稍后的訪問(即使這些表項當前在字典中還沒有找到)。

如果想取消這個功能,可以在普通的字典上調用setdefault()方法來取代,例如:

d={} #一個普通的字典
d.setdefault('a',[]).append(1)
d.setdefault('a',[]).append(2)
d.setdefault('a',[]).append(2)
d.setdefault('b',[]).append(4)
>>>

key的value是list類型的字典:

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

補充:

構建一個一鍵多值的字典很容易,但是如果試著自己對第一個值做初始化操作,這個會變得很雜亂,如果使用defaultdic后代碼會簡潔很多:

pairs={'a':[22,44],'b':[88]}
d=defaultdict(list)
for key,value in pairs.items():
  d[key].append(value)
print (d)
>>>
defaultdict(<class 'list'>, {'a': [[22, 44]], 'b': [[88]]})
>>>

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python如何在字典中將鍵映射到多個值上”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

方城县| 亚东县| 珲春市| 大渡口区| 台中市| 聂拉木县| 壶关县| 元氏县| 镇坪县| 新丰县| 乌兰察布市| 丹巴县| 全南县| 宣汉县| 古交市| 来凤县| 罗城| 大洼县| 新化县| 志丹县| 四子王旗| 万源市| 民乐县| 临潭县| 海原县| 山东| 乳源| 海盐县| 灯塔市| 陵水| 太白县| 米易县| 紫金县| 英德市| 永泰县| 青浦区| 广河县| 花垣县| 浮山县| 同德县| 南通市|