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
Barbara Streisandoriginal
2024-12-23 14:01:14450parcourir

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]

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

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, [])

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)

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!

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