如何合并具有相同键的字典 [英] How to merge dictionary having same keys
本文介绍了如何合并具有相同键的字典的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个像这样的数据结构:
I have a data structure like this:
[ {'SNAPSHOT': {'SnapshotVersion': '304'}},
{'SNAPSHOT': {'SnapshotCreationDate': '2015-06-21 17:33:41'}},
{'CafeData': {'CafeVersion': '2807'}},
{'CafeData': {'IsSoftwareOnly': '1'}},
{'CafeData'{'IsPassportTCPIP': '1'}}
]
输出应如下所示:
[ {'SNAPSHOT': {'SnapshotVersion': '304','SnapshotCreationDate': '2015-06-21 17:33:41'}},
{'CafeData': {'CafeVersion': '2807','IsSoftwareOnly': '1','IsPassportTCPIP': '1'}}
]
推荐答案
使用 https://docs.python.org/3/library/collections.html#collections.defaultdict ,它会在遇到新密钥时在defaultdict中创建一个dict.
Using https://docs.python.org/3/library/collections.html#collections.defaultdict which creates a dict within the defaultdict anytime a new key is encountered.
import collections as co
dd = co.defaultdict(dict)
l = [ {'SNAPSHOT': {'SnapshotVersion': '304'}},
{'SNAPSHOT': {'SnapshotCreationDate': '2015-06-21 17:33:41'}},
{'CafeData': {'CafeVersion': '2807'}},
{'CafeData': {'IsSoftwareOnly': '1'}},
{'CafeData': {'IsPassportTCPIP': '1'}} ]
for i in l:
for k,v in i.items():
dd[k].update(v)
结果:
In [8]: dd
Out[8]:
defaultdict(dict,
{'SNAPSHOT': {'SnapshotVersion': '304',
'SnapshotCreationDate': '2015-06-21 17:33:41'},
'CafeData': {'CafeVersion': '2807',
'IsSoftwareOnly': '1',
'IsPassportTCPIP': '1'}})
这篇关于如何合并具有相同键的字典的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文