Python: mescla dicionários de maneira elegante com soma () de valores [duplicado]
Esta pergunta já tem uma resposta aqui:
Existe alguma maneira pitônica de combinar dois ditados (adicionando valores para chaves que aparecem em ambos 18 respostas Estou tentando mesclar logs de vários servidores. Cada log é uma lista de tuplas date
, count
).date
pode aparecer mais de uma vez e quero que o dicionário resultante retenha a soma de todas as contagens de todos os servidore
Aqui está minha tentativa, com alguns dados, por exemplo:
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)
Que dá
{'14.5': 100, '16.5': 100, '13.5': 100, '15.5': 200}
Como esperado
Estou prestes a comer banana por causa de um colega que viu o código. Ela insiste que deve haver uma maneira mais pitônica e elegante de fazê-lo, sem estes aninhados para loops. Alguma ideia