J'ai une liste de dictionnaires, par exemple:Comment créer une dict unique Python à partir d'une liste de dicts en additionnant des valeurs avec des clés communes?
dictList = [
{'a':3, 'b':9, 'c':4},
{'a':9, 'b':24, 'c':99},
{'a':10, 'b':23, 'c':88}
]
Tous les dictionnaires ont les mêmes clés par exemple un, b, c. Je souhaite créer un seul dictionnaire avec les mêmes clés où les valeurs sont les sommes des valeurs avec les mêmes clés de tous les dictionnaires dans la liste originale.
Pour l'exemple ci-dessus, la sortie doit être:
{'a':22, 'b':56, 'c':191}
Quelle serait la façon la plus efficace de le faire? J'ai actuellement:
result = {}
for myDict in dictList:
for k in myDict:
result[k] = result.setdefault(k, 0) + myDict[k]
+1 et si elles ne sont pas toutes les clés: dict ((clé, somme (d.get (clé, 0) pour d en dictlist)) pour la clé dans dictlist [0])) –
@Nadia: à la fois la réponse de Brian et vos commentaires donnent le même code – uolot
@paffnucy: non, ils ne le font pas/ – SilentGhost