如何将词典列表合并为一个词典

2024-03-28 22:52:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份口述清单:

d =[{'a': 4}, {'b': 20}, {'c': 5}, {'d': 3}]

我想删除大括号并将d转换为单个dict,如下所示:

^{pr2}$

Tags: 大括号dict口述pr2
3条回答

覆盖现有密钥的值,一个残酷和缺乏经验的解决方案是

nd = {}
for el in d:
    for k,v in el.items():
    nd[k] = v

或者,作为字典理解:

^{pr2}$

如果您不介意用重复键替换以前的键,可以使用:

from functools import reduce  # Python 3 compatibility 
d = reduce(lambda a, b: dict(a, **b), d)

这将合并前两个字典,然后将下面的每个字典合并到目前为止构建的结果中。在

演示:

^{pr2}$

您只需要迭代d并将(update())元素附加到一个新的dict中,例如newD。在

d =[{'a': 4}, {'b': 20}, {'c': 5}, {'d': 3}]

newD = {}
for entry in d:
    newD.update(entry)

>>> newD
{'c': 5, 'b': 20, 'a': 4, 'd': 3}

注意:如果d中有重复的值,最后一个值将出现在newD中。在

相关问题 更多 >