Maison > développement back-end > Tutoriel Python > Comment aplatir les compréhensions de listes imbriquées en Python ?

Comment aplatir les compréhensions de listes imbriquées en Python ?

DDD
Libérer: 2024-11-07 03:47:02
original
954 Les gens l'ont consulté

How to Flatten Nested List Comprehensions in Python?

Aplatir une compréhension de liste pour obtenir un résultat à un seul niveau

Face à une structure de données imbriquée, les programmeurs visent souvent à l'aplatir en un seul niveau. Cela se produit lors de l'utilisation de compréhensions de listes, où chaque élément peut générer une liste, conduisant à une liste de listes. La question à résoudre aborde ce problème, en recherchant une solution pour obtenir une liste aplatie.

Itérations imbriquées pour l'aplatissement

Les compréhensions de liste de Python offrent une syntaxe concise pour les transformations de données complexes . Pour réaliser l'aplatissement, on peut utiliser des itérations imbriquées dans une seule compréhension de liste. Le code suivant illustre cette approche :

<code class="python">[filename for path in dirs for filename in os.listdir(path)]</code>
Copier après la connexion

Dans cet exemple, 'dirs' est une liste de répertoires, et pour chaque répertoire, 'os.listdir(path)' renvoie une liste de sous-répertoires. La compréhension imbriquée parcourt les deux listes, accumulant les sous-répertoires dans un résultat aplati.

Équivalence fonctionnelle

La compréhension de liste imbriquée peut être représentée comme une série de boucles imbriquées :

<code class="python">filenames = []
for path in dirs:
    for filename in os.listdir(path):
        filenames.append(filename)</code>
Copier après la connexion

Les deux approches aboutissent au même résultat : une liste aplatie de sous-répertoires. La compréhension de liste offre une syntaxe plus compacte et lisible, notamment pour les transformations complexes impliquant plusieurs itérations.

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