如何将词典列表与一本词典合并

2 python dictionary

我有一些字典:

d =[{'a': 4}, {'b': 20}, {'c': 5}, {'d': 3}]
Run Code Online (Sandbox Code Playgroud)

我想删除花括号并转换d为如下所示的单个字典:

d ={'a': 4, 'b': 20, 'c': 5, 'd': 3}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

如果您不介意将重复的键替换为较早的键,则可以使用:

from functools import reduce  # Python 3 compatibility 
d = reduce(lambda a, b: dict(a, **b), d)
Run Code Online (Sandbox Code Playgroud)

这将合并前两个词典,然后将每个随后的词典合并到到目前为止构建的结果中。

演示:

>>> d =[{'a': 4}, {'b': 20}, {'c': 5}, {'d': 3}]
>>> reduce(lambda a, b: dict(a, **b), d)
{'a': 4, 'c': 5, 'b': 20, 'd': 3}
Run Code Online (Sandbox Code Playgroud)


ele*_*ent 5

您只需要迭代并将元素d追加( )到一个新的字典中,例如。 update()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}
Run Code Online (Sandbox Code Playgroud)

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