【发布时间】:2013-04-16 16:33:15
【问题描述】:
我有一个字典列表,我想将它们合并到一个字典中,并将每个字典中的值添加到列表中。例如:
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 中有更快的方法吗?
【问题讨论】:
-
nvm 这不是重复的,因为它只允许 2.6
-
@user1728853 每个字典平均有多大?
-
相当小,通常不到 500 件。
-
没有什么比你明显的实现更快了。
标签: python python-2.6