亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在python中將多個字典轉換為單個字典

在python中將多個字典轉換為單個字典

鴻蒙傳說 2021-08-24 17:23:10
我有多個字典及其鍵和值,我想分配(將它們全部轉移到一個新的空字典并保留所有鍵和值。注意:我檢查的其他問題具有相同大小的字典n = {}x = {'six':6,'thirteen':13,'fifty five':55}y = {'two': 2, 'four': 4, 'three': 3, 'one': 1, 'zero': 0,'ten': 10}z = {'nine': 9, 'four': 4, 'three': 3, 'eleven': 11, 'zero': 0, 'seven':7}
查看完整描述

2 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

ChainMap

對于許多用例,collections.ChainMap足夠并且高效(假設 Python 3.x):


from collections import ChainMap


n = ChainMap(x, y, z)


n['two']       # 2

n['thirteen']  # 13

如果你需要一本字典,只需調用dict上ChainMap的對象:


d = dict(n)

字典解包

使用 Python 3.x ( PEP448 ),您可以在定義新字典時解壓縮字典:


d = {**x, **y, **z}


查看完整回答
反對 回復 2021-08-24
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

在這樣的循環中使用 dict 自己的更新方法:


x = {'six':6,'thirteen':13,'fifty five':55}

y = {'two': 2, 'four': 4, 'three': 3, 'one': 1, 'zero': 0,'ten': 10}

z = {'nine': 9, 'four': 4, 'three': 3, 'eleven': 11, 'zero': 0, 'seven':7}


n = {}

for e in [x,y,z]:

    n.update(e)

如果你只有幾個 dicts,它會很快。但是如果你有幾個字典(例如超過 20 個),最好使用 locals()。


n = {}

for e in "xyz":

    n.update(locals()[e])

或者,如果您使用 python3,則有一種更簡單的方法:


n = {**x, **y, **z}


查看完整回答
反對 回復 2021-08-24
  • 2 回答
  • 0 關注
  • 314 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號