Maison > développement back-end > Tutoriel Python > Quel est le moyen le plus efficace d'aplatir une liste de listes en Python ?

Quel est le moyen le plus efficace d'aplatir une liste de listes en Python ?

Barbara Streisand
Libérer: 2024-12-23 14:01:14
original
455 Les gens l'ont consulté

What's the Most Efficient Way to Flatten a List of Lists in Python?

Aplatir des listes de listes

Aplatir une liste de listes implique de convertir une structure imbriquée en une liste à un seul niveau. En Python, cela peut être réalisé en utilisant plusieurs méthodes.

Compréhension de liste imbriquée

La méthode la plus efficace est une compréhension de liste imbriquée :

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

Cette expression parcourt chaque liste interne et ajoute chaque élément au plat résultant list.

Utilisation de l'opérateur

Vous pouvez également aplatir les listes à l'aide de l'opérateur :

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

Cette méthode est légèrement plus lente que la compréhension de liste en raison d'une concaténation répétée de listes.

Utilisation d'une somme avec un vide Liste

Une autre approche utilise la fonction somme avec une liste vide :

flat_list = sum(xss, [])
Copier après la connexion

Cette méthode est moins efficace que la compréhension de liste, notamment pour les grandes listes.

Utiliser functools.reduce

Enfin, vous pouvez utiliser le Fonction functools.reduce :

from functools import reduce
flat_list = reduce(lambda xs, ys: xs + ys, xss)
Copier après la connexion

Encore une fois, cette méthode est plus lente que la compréhension de liste.

Les tests de performances utilisant le module timeit montrent que la compréhension de liste est la méthode la plus rapide.

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