如何将列表中的字典合并为一个词典,并添加相同键的值?

时间:2019-11-09 21:14:49

标签: python python-3.x dictionary nested-lists

我正在尝试将包含字典的列表转换为一个字典,其中添加了通用键的值。

以该列表为例:

list = [{'Apple': 3, 'Orange': 2}, {'Apple': 1, 'Grapes': 3, 'Orange': 1}, {'Apple': 2}]

我想要一个将该列表作为输入并返回以下内容作为输出的函数:

{'Apple': 6, 'Orange': 3, 'Grapes': 3}

1 个答案:

答案 0 :(得分:3)

from collections import Counter

fruit_dicts = [
    {'Apple': 3, 'Orange': 2},
    {'Apple': 1, 'Grapes': 3, 'Orange': 1},
    {'Apple': 2}
]

counter = Counter()
for fruit_dict in fruit_dicts:
    counter.update(fruit_dict)

print(counter)

输出:

Counter({'Apple': 6, 'Orange': 3, 'Grapes': 3})

编辑,无需使用collections.Counter

fruit_dicts = [
    {'Apple': 3, 'Orange': 2},
    {'Apple': 1, 'Grapes': 3, 'Orange': 1},
    {'Apple': 2}
]

counter = {}
for fruit_dict in fruit_dicts:
    for key, value in fruit_dict.items():
        counter.update({key: counter.get(key, 0) + value})

print(counter)