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
Freigeben: 2024-12-23 14:01:14
Original
459 Leute haben es durchsucht

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]
Nach dem Login kopieren

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
Nach dem Login kopieren

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, [])
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage