我有一个字典列表,想将它们合并成一个字典,并且将列表中每个字典的值相加。例如:
ds = [{1: 1, 2: 0, 3: 0}, {1: 2, 2: 1, 3: 0}, {1: 3, 2: 2, 3: 1, 4: 5}]
最终结果应该是一个字典:
merged = {1: 6, 2: 3, 3: 1, 4: 5}
我对性能很感兴趣,正在寻找最快的实现方法来合并一个由n个字典组成的列表,并将值相加。一个显然的实现方案是:
from collections import defaultdict
merged = defaultdict(int)
for d in ds:
for k, v in d.items():
merged[k] += v
在 Python 2.6 中有更快的方法吗?
[0]*n
初始化列表会更快。此外,您可以尝试使用.iteritems
来查看它是否对您的情况有所帮助,我知道对于非常大的数据它会有帮助,但不确定对于500
个项目是否足够大。 - jamylak