Lorsque vous travaillez avec plusieurs dictionnaires contenant des clés qui se chevauchent, il devient nécessaire de les fusionner efficacement tout en collectant les valeurs associées à ces clés. Cet article explore une solution pour combiner et collecter des valeurs à partir de clés correspondantes au sein d'une collection de dictionnaires.
Étant donné plusieurs dictionnaires comme :
d1 = {key1: x1, key2: y1} d2 = {key1: x2, key2: y2}
L'objectif est pour obtenir un résultat fusionné sous la forme d'un nouveau dictionnaire, où chaque clé contient un tuple de valeurs de l'original dictionnaires :
d = {key1: (x1, x2), key2: (y1, y2)}
La solution utilise collections.defaultdict pour créer un dictionnaire avec des valeurs par défaut sous forme de listes mutables. Cela permet l'accumulation de valeurs pour chaque clé :
from collections import defaultdict d1 = {1: 2, 3: 4} d2 = {1: 6, 3: 7} dd = defaultdict(list) for d in (d1, d2): # Input dictionaries can be iterated over here for key, value in d.items(): dd[key].append(value)
Le dictionnaire fusionné final dd contient chaque clé mappée à une liste de valeurs des dictionnaires d'entrée.
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!