Maison >développement back-end >Tutoriel Python >Comment puis-je fusionner efficacement des dictionnaires Python avec des clés correspondantes en tuples de valeurs ?

Comment puis-je fusionner efficacement des dictionnaires Python avec des clés correspondantes en tuples de valeurs ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-22 14:25:171001parcourir

How Can I Efficiently Merge Python Dictionaries with Matching Keys into Tuples of Values?

Fusionner des dictionnaires avec des clés correspondantes : un didacticiel

En Python, fusionner des dictionnaires en combinant des valeurs associées à des clés correspondantes peut être une tâche courante. Explorons une méthode pour atteindre efficacement cet objectif.

Énoncé du problème

Étant donné plusieurs dictionnaires avec des paires clé-valeur, telles que :

d1 = {key1: x1, key2: y1}
d2 = {key1: x2, key2: y2}

L'objectif est de créer un nouveau dictionnaire où chaque clé possède un tuple des valeurs correspondantes des dictionnaires d'entrée. Par exemple, le résultat souhaité serait :

d = {key1: (x1, x2), key2: (y1, y2)}

Solution : Utiliser defaultdict

Une approche efficace pour fusionner des dictionnaires tout en collectant des valeurs à partir de clés correspondantes consiste à exploiter le classe defaultdict du module collections. Voici une démonstration étape par étape :

  1. Définissez un objet defaultdict, qui crée automatiquement des listes de clés manquantes.
  2. Parcourez les dictionnaires d'entrée.
  3. Pour chaque dictionnaire, pour chaque paire clé-valeur, ajoutez la valeur à la liste associée à la clé dans le defaultdict.
  4. Le defaultdict résultant aura des clés représentant les clés d'origine de tous les dictionnaires d'entrée et les valeurs sous forme de listes contenant les valeurs correspondantes.

Implémentation du code

from collections import defaultdict

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

dd = defaultdict(list)

for d in (d1, d2):
    for key, value in d.items():
        dd[key].append(value)

print(dd)  # defaultdict(<type 'list'>, {1: [2, 6], 3: [4, 7]})

En suivant ces étapes, vous peut fusionner efficacement des dictionnaires avec des clés correspondantes et combiner leurs valeurs associées dans un nouveau dictionnaire.

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