Почти похоже, но оно короткое, и мне нравится немного лучше.
у объединить все словари в словаре, игнорируя при этом основные ключи словаря и суммируя значения других словарей по значению.
Входные данные:
{'first':{'a': 5}, 'second':{'a': 10}, 'third':{'b': 5, 'c': 1}}
Выход:
{'a': 15, 'b': 5, 'c': 1}
Я сделал:
def merge_dicts(large_dictionary):
result = {}
for name, dictionary in large_dictionary.items():
for key, value in dictionary.items():
if key not in result:
result[key] = value
else:
result[key] += value
return result
Что работает, но я не думаю, что это такой хороший способ (или менее "питонический").
Кстати, мне не нравится название, которое я написал. Если кто-то думает о лучшей формулировке, пожалуйста, отредактируйте.