Fusionner des dictionnaires en Python : ajouter des valeurs pour les clés qui se chevauchent
Lorsque vous travaillez avec plusieurs dictionnaires, il est souvent nécessaire de les combiner de manière significative . Un scénario courant consiste à ajouter les valeurs des clés qui apparaissent dans les deux dictionnaires tout en conservant les clés qui n'existent que dans un seul.
Problème :
Considérez les dictionnaires suivants :
Dict A: {'a': 1, 'b': 2, 'c': 3} Dict B: {'b': 3, 'c': 4, 'd': 5}
Le but est de fusionner ces dictionnaires de telle sorte que le résultat est :
{'a': 1, 'b': 5, 'c': 7, 'd': 5}
Solution utilisant Collections.Counter :
Un moyen pythonique et efficace d'y parvenir consiste à utiliser la classe collections.Counter. Il s'agit d'une sous-classe de dict qui fournit un moyen pratique d'effectuer un comptage basé sur les éléments, qui se prête bien à la tâche de fusion de dictionnaires.
from collections import Counter A = Counter({'a':1, 'b':2, 'c':3}) B = Counter({'b':3, 'c':4, 'd':5})
Pour fusionner les dictionnaires, nous ajoutons simplement les objets Counter :
merged_dict = A + B
Le résultat est un nouvel objet Counter, qui ajoute automatiquement des valeurs pour les clés qui se chevauchent :
merged_dict.most_common() # Output: [('c', 7), ('b', 5), ('d', 5), ('a', 1)]
Conversion le faire dans un dictionnaire ordinaire est trivial :
merged_dict = dict(merged_dict)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!