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

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

DDD
DDDoriginal
2024-11-07 03:47:02805parcourir

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>

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>

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!

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