在列表中合并字典有什么好的pythonic方法吗?
我有什么:
[
{ 'name': "Jack" },
{ 'age': "28" }
]
我想要的是什么:
[
{ 'name': "Jack", 'age': "28" }
]
答案 0 :(得分:1)
您可以使用列表理解:
final_list = [{key: one_dict[key]
for one_dict in initial_list
for key in one_dict.keys()}]
编辑:列表理解是向后的
答案 1 :(得分:1)
这是一种使用dict.update()
的方法。在我看来,这是一个非常易读的解决方案:
import sys
<强>输出强>
[{&#39; age&#39;:&#39; 28&#39;,&#39; name&#39;:&#39; Jack&#39;}]
答案 2 :(得分:1)
如果您使用的是Python 3,则可以使用collections.ChainMap
:
>>> from collections import ChainMap
>>> ld = [
... { 'name': "Jack" },
... { 'age': "28" }
... ]
>>> [dict(ChainMap(*ld))]
[{'name': 'Jack', 'age': '28'}]
答案 3 :(得分:0)
out = reduce(lambda one, two: dict(one.items() + two.items()),
[{'name': 'Jack'}, {'age': '28'}, {'last_name': 'Daniels'}])
print(out)
输出
{'age': '28', 'last_name': 'Daniels', 'name': 'Jack'}