Heim >Backend-Entwicklung >Python-Tutorial >Was ist der effizienteste Weg, eine Liste von Listen in Python zu reduzieren?

Was ist der effizienteste Weg, eine Liste von Listen in Python zu reduzieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-23 14:01:14492Durchsuche

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

Listen von Listen reduzieren

Beim Reduzieren einer Liste von Listen wird eine verschachtelte Struktur in eine einstufige Liste umgewandelt. In Python kann dies mit mehreren Methoden erreicht werden.

Nested List Comprehension

Die effizienteste Methode ist ein Nested List Comprehension:

flat_list = [x for xs in xss for x in xs]

Dieser Ausdruck durchläuft jede innere Liste und hängt jedes Element an die resultierende Ebene an Liste.

Verwendung des Operators

Sie können Listen auch mit dem Operator reduzieren:

flat_list = []
for xs in xss:
    flat_list = flat_list + xs

Diese Methode ist geringfügig langsamer als das Listenverständnis aufgrund wiederholter Listenverkettung.

Summe mit Leerzeichen verwenden Liste

Ein anderer Ansatz verwendet die Summenfunktion mit einer leeren Liste:

flat_list = sum(xss, [])

Diese Methode ist weniger effizient als das Listenverständnis, insbesondere bei großen Listen.

Verwenden von functools.reduce

Schließlich können Sie das verwenden functools.reduce-Funktion:

from functools import reduce
flat_list = reduce(lambda xs, ys: xs + ys, xss)

Auch diese Methode ist langsamer als das Listenverständnis.

Leistungstests mit dem Timeit-Modul zeigen, dass das Listenverständnis die schnellste Methode ist.

Das obige ist der detaillierte Inhalt vonWas ist der effizienteste Weg, eine Liste von Listen in Python zu reduzieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn