Maison >développement back-end >Tutoriel Python >Comment puis-je fusionner des dictionnaires Python avec des clés en double dans des listes de valeurs ?

Comment puis-je fusionner des dictionnaires Python avec des clés en double dans des listes de valeurs ?

DDD
DDDoriginal
2024-12-10 07:16:16496parcourir

How Can I Merge Python Dictionaries with Duplicate Keys into Lists of Values?

Fusionner des dictionnaires avec des clés en double en Python

En Python, gérer plusieurs dictionnaires peut être difficile, surtout lorsque leur fusion devient nécessaire. Un problème courant survient lorsque les dictionnaires partagent des clés en double, et l'objectif est de collecter toutes les valeurs associées à ces clés dans une seule liste.

Solution : defaultdict

Pour gérer cela efficacement, un puissant Python L'outil appelé defaultdict du module collections entre en jeu. Il permet de créer une valeur par défaut (dans ce cas, une liste vide) pour toute clé qui n'existe pas dans le dictionnaire.

Considérons l'exemple suivant :

d1 = {1: 2, 3: 4}
d2 = {1: 6, 3: 7}

Pour fusionner ces dictionnaires, collectant les valeurs des clés correspondantes, nous pouvons utiliser defaultdict comme suit :

from collections import defaultdict

dd = defaultdict(list)

for d in (d1, d2): # loop through all input dictionaries
    for key, value in d.items():
        dd[key].append(value)
    
print(dd) # result: defaultdict(<type 'list'>, {1: [2, 6], 3: [4, 7]})

Dans ce code :

  • Nous créons un defaultdict vide avec defaultdict(list).
  • Nous parcourons chaque dictionnaire d'entrée d.
  • Pour chaque paire clé-valeur dans chaque dictionnaire, nous ajoutons la valeur à la liste associée à la clé dans notre defaultdict.
  • Le résultat est un defaultdict où les clés représentent les clés fusionnées de tous les dictionnaires, et les valeurs sont des listes contenant toutes les valeurs correspondantes.

Cette solution collecte efficacement toutes les valeurs associées aux clés correspondantes à partir de plusieurs dictionnaires, offrant ainsi un moyen propre et polyvalent de gérer les clés en double.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn