Maison > développement back-end > Tutoriel Python > Comment puis-je aplatir un dictionnaire imbriqué en Python ?

Comment puis-je aplatir un dictionnaire imbriqué en Python ?

Patricia Arquette
Libérer: 2024-12-17 00:59:24
original
868 Les gens l'ont consulté

How Can I Flatten a Nested Dictionary in Python?

Démêler les complexités : aplatir les dictionnaires imbriqués

Supposons que vous rencontriez un dictionnaire complexe avec des niveaux imbriqués, reflétant la structure enchevêtrée d'un labyrinthe. Pour parcourir ce dictionnaire, il faut employer une technique astucieuse pour l’aplatir, démêlant ses couches complexes en une forme simplifiée. Ce rendu simplifié dévoile les données sous-jacentes d'une manière plus accessible et plus directe.

La clé de cette simplification réside dans l'itération sur les clés et les valeurs du dictionnaire. Grâce à ce processus, de nouvelles clés sont méticuleusement construites en concaténant la clé parent avec la clé actuelle, séparées par un délimiteur personnalisable.

Si une valeur elle-même s'avère être un dictionnaire, le processus d'aplatissement est appliqué de manière récursive, incorporant de manière transparente ses éléments dans la structure aplatie. Cependant, si la valeur n'est pas un dictionnaire, elle est directement ajoutée au dictionnaire aplati.

Essentiellement, les valeurs contenues dans le réseau complexe de dictionnaires imbriqués sont méticuleusement extraites et ornées de clés nouvellement attribuées, reflétant leur relations hiérarchiques. Le résultat est un dictionnaire aplati, semblable à une carte bien organisée, où chaque valeur peut être localisée sans effort grâce à sa clé unique nouvellement attribuée.

Pour illustrer davantage cette technique d'aplatissement, considérons l'exemple suivant :

from collections.abc import MutableMapping

def flatten(dictionary, parent_key='', separator='_'):
    items = []
    for key, value in dictionary.items():
        new_key = parent_key + separator + key if parent_key else key
        if isinstance(value, MutableMapping):
            items.extend(flatten(value, new_key, separator=separator).items())
        else:
            items.append((new_key, value))
    return dict(items)
Copier après la connexion

Lorsqu'il est appliqué à un dictionnaire comme :

{'a': 1, 'c': {'a': 2, 'b': {'x': 5, 'y' : 10}}, 'd': [1, 2, 3]}
Copier après la connexion

Le résultat est un aplati dictionnaire :

{'a': 1, 'c_a': 2, 'c_b_x': 5, 'd': [1, 2, 3], 'c_b_y': 10}
Copier après la connexion

En utilisant cette technique d'aplatissement, on démêle efficacement les complexités des dictionnaires imbriqués, révélant la structure cachée à l'intérieur. Cette représentation simplifiée offre aux développeurs un format de données plus accessible et plus gérable, facilitant les tâches telles que l'analyse, l'interrogation et la manipulation des données.

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