Python: элегантно объединить словари с sum () значений [duplicate]
На этот вопрос уже есть ответ:
Есть ли какой-нибудь питонный способ объединить два слова (добавив значения для ключей, которые появляются в обоих)? 18 ответов Я пытаюсь объединить журналы с нескольких серверов. Каждый журнал представляет собой список кортежей date
, count
).date
может появляться более одного раза, и я хочу, чтобы полученный словарь содержал сумму всех подсчетов со всех серверов.
Вот моя попытка, с некоторыми данными, например:
from collections import defaultdict
a=[("13.5",100)]
b=[("14.5",100), ("15.5", 100)]
c=[("15.5",100), ("16.5", 100)]
input=[a,b,c]
output=defaultdict(int)
for d in input:
for item in d:
output[item[0]]+=item[1]
print dict(output)
Который дает
{'14.5': 100, '16.5': 100, '13.5': 100, '15.5': 200}
Как и ожидалось
Я собираюсь пойти на бананы из-за коллеги, который видел код. Она настаивает на том, что должен быть более питонский и элегантный способ сделать это без вложенных петель. Любые идеи