Maison > développement back-end > Tutoriel Python > Comment puis-je fusionner efficacement plusieurs dictionnaires avec des clés potentiellement manquantes ?

Comment puis-je fusionner efficacement plusieurs dictionnaires avec des clés potentiellement manquantes ?

Patricia Arquette
Libérer: 2024-12-16 19:56:11
original
142 Les gens l'ont consulté

How Can I Efficiently Merge Multiple Dictionaries with Potentially Missing Keys?

Agréger efficacement les données de plusieurs dictionnaires

Lorsque vous travaillez avec plusieurs dictionnaires, il peut être nécessaire de fusionner leurs données, en collectant des valeurs pour les clés correspondantes dans un nouveau dictionnaire. Cette tâche pose un défi lorsque les dictionnaires peuvent contenir des clés qui manquent dans d'autres.

Pour relever ce défi efficacement, nous pouvons utiliser le defaultdict du module collections. Voici comment cela fonctionne :

from collections import defaultdict

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

dd = defaultdict(list)

for d in (d1, d2): # Include all dictionaries here
    for key, value in d.items():
        dd[key].append(value)
Copier après la connexion

Ce code parcourt chaque dictionnaire, ajoutant chaque paire clé-valeur au defaultdict. Le defaultdict initialise automatiquement les clés manquantes avec une liste vide. Ainsi, lorsqu'une clé est rencontrée dans un dictionnaire mais pas dans les précédents, une nouvelle liste est créée pour ses valeurs.

Le résultat final obtenu en dd est un defaultdict où chaque clé correspond à une liste de valeurs collectées à partir de tous les dictionnaires d'entrée.

print(dd) # Result: defaultdict(<type 'list'>, {1: [2, 6], 3: [4, 7]})
Copier après la connexion

Cette solution garantit une agrégation efficace et complète des données de plusieurs dictionnaires, en traitant même les cas avec des clés manquantes.

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!

source:php.cn
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