在python中将多个字典转换为单个字典

我有多个字典及其键和值,我想分配(将它们全部转移到一个新的空字典并保留所有键和值。注意:我检查的其他问题具有相同大小的字典


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}


鸿蒙传说
浏览 288回答 2
2回答

Helenr

ChainMap对于许多用例,collections.ChainMap足够并且高效(假设 Python 3.x):from collections import ChainMapn = ChainMap(x, y, z)n['two']       # 2n['thirteen']  # 13如果你需要一本字典,只需调用dict上ChainMap的对象:d = dict(n)字典解包使用 Python 3.x ( PEP448 ),您可以在定义新字典时解压缩字典:d = {**x, **y, **z}

白猪掌柜的

在这样的循环中使用 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}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python