为了账号安全,请及时绑定邮箱和手机立即绑定

在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 关注
  • 287 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号