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

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

DDD
DDDoriginal
2024-11-14 11:07:02838parcourir

How to Flatten Nested Lists from List Comprehensions in Python?

Aplatissement des résultats de la compréhension de liste

En Python, l'utilisation d'une compréhension de liste pour appliquer une fonction à chaque élément d'une liste peut entraîner des imbrications listes. Par exemple, en considérant une liste A et une fonction f qui transforme chaque élément de A en liste, la compréhension de liste [f(a) pour a dans A] produit une liste de listes.

Pour obtenir un aplati list, un peu comme les opérateurs 'flatmap' de la programmation fonctionnelle ou 'SelectMany' de .NET, l'imbrication peut être introduite dans la liste compréhension :

<code class="python">[filename for path in dirs for filename in os.listdir(path)]</code>

Ceci est fonctionnellement équivalent au code suivant qui utilise plusieurs boucles imbriquées :

<code class="python">filenames = []
for path in dirs:
    for filename in os.listdir(path):
        filenames.append(filename)</code>

L'adoption de cette approche garantit qu'une liste plate est produite, où les éléments sont obtenus par en parcourant d'abord les répertoires de la liste externe, puis la liste interne renvoyée par la fonction f appliquée à chaque élément des répertoires.

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