Я пытаюсь объединить журналы с нескольких серверов. Каждый журнал представляет собой список кортежей (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}
Как и ожидалось.
Я собираюсь пойти бананами из-за коллеги, который видел код. Она настаивает на том, что для этого должен быть более питоновский и элегантный способ, без этих вложенных циклов. Любые идеи?