Maison > Article > développement back-end > Comment aplatir les compréhensions de listes imbriquées en 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!