合并字典的值
将两个或多个字典合并,为每个键创建一个值列表。
- 使用
collections.defaultdict
创建一个新的字典,将list
作为每个键的默认值,并循环遍历dicts
。 - 使用
dict.append()
将字典的值映射到键。 - 使用
dict()
将collections.defaultdict
转换为普通字典。
from collections import defaultdict
def combine_values(*dicts):
res = defaultdict(list)
for d in dicts:
for key in d:
res[key].append(d[key])
return dict(res)
d1 = {'a': 1, 'b': 'foo', 'c': 400}
d2 = {'a': 3, 'b': 200, 'd': 400}
combine_values(d1, d2) # {'a': [1, 3], 'b': ['foo', 200], 'c': [400], 'd': [400]}