Maison > développement back-end > Tutoriel Python > Comment puis-je aplatir efficacement une liste imbriquée en Python ?

Comment puis-je aplatir efficacement une liste imbriquée en Python ?

Susan Sarandon
Libérer: 2024-12-31 03:09:10
original
438 Les gens l'ont consulté

How Can I Efficiently Flatten a Nested List in Python?

Aplatir une liste de listes

Énoncé du problème :

Vous recevez une liste imbriquée et devez l'aplatir dans une seule liste. Par exemple, vous avez une liste de listes comme :

[[1, 2, 3],
[4, 5, 6],
[7],
[8, 9]]
Copier après la connexion

Le but est d'aplatir cette structure en une seule liste :

[1, 2, 3, 4, 5, 6, 7, 8, 9]
Copier après la connexion

Solution :

Pour aplatir une liste de listes, vous pouvez utiliser une compréhension de liste imbriquée. Cette technique consiste à parcourir chaque liste interne (représentée par xs dans le code) et à ajouter chaque élément individuel (représenté par x) à une liste aplatie (nommée flat_list) :

flat_list = [
    x
    for xs in xss
    for x in xs
]
Copier après la connexion

Cela équivaut à ce qui suit itération explicite à l'aide de boucles imbriquées :

flat_list = []

for xs in xss:
    for x in xs:
        flat_list.append(x)
Copier après la connexion

Vous pouvez également créer une fonction pour effectuer cet aplatissement opération :

def flatten(xss):
    return [x for xs in xss for x in xs]
Copier après la connexion

En utilisant cette fonction, vous pouvez aplatir la liste d'entrée comme suit :

flat_list = flatten([[1, 2, 3],
                   [4, 5, 6],
                   [7],
                   [8, 9]])
Copier après la connexion

Cette approche est très efficace et fonctionne nettement mieux que d'autres méthodes telles que l'utilisation ou la réduction . La technique de compréhension de liste garantit que chaque élément n'est copié qu'une seule fois dans la liste aplatie.

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