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
Libérer: 2024-12-22 14:25:17
original
1026 Les gens l'ont consulté

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}
Copier après la connexion

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)}
Copier après la connexion

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]})
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal