Как объединить словари в списке в один словарь с добавленными значениями одинаковых ключей? - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь преобразовать список, содержащий словари, в один словарь, в который добавляются значения для общих ключей.

Используйте этот список в качестве примера:

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

Я хочуфункция, которая будет принимать этот список в качестве входных данных и возвращать следующее в качестве выходных данных:

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

1 Ответ

3 голосов
/ 10 ноября 2019
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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...