Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich eine verschachtelte Liste in Python effizient reduzieren?

Wie kann ich eine verschachtelte Liste in Python effizient reduzieren?

Susan Sarandon
Freigeben: 2024-12-31 03:09:10
Original
423 Leute haben es durchsucht

How Can I Efficiently Flatten a Nested List in Python?

Eine Liste von Listen reduzieren

Problemstellung:

Sie erhalten eine verschachtelte Liste und müssen diese reduzieren eine einzelne Liste. Sie haben beispielsweise eine Liste mit Listen wie:

[[1, 2, 3],
[4, 5, 6],
[7],
[8, 9]]
Nach dem Login kopieren

Das Ziel besteht darin, diese Struktur in eine einzige Liste zu reduzieren:

[1, 2, 3, 4, 5, 6, 7, 8, 9]
Nach dem Login kopieren

Lösung:

Um eine Liste von Listen zu reduzieren, können Sie ein verschachteltes Listenverständnis verwenden. Diese Technik beinhaltet das Durchlaufen jeder inneren Liste (dargestellt durch xs im Code) und das Anhängen jedes einzelnen Elements (dargestellt durch x) an eine abgeflachte Liste (mit dem Namen flat_list):

flat_list = [
    x
    for xs in xss
    for x in xs
]
Nach dem Login kopieren

Dies entspricht dem Folgenden explizite Iteration mit verschachtelten Schleifen:

flat_list = []

for xs in xss:
    for x in xs:
        flat_list.append(x)
Nach dem Login kopieren

Alternativ können Sie eine Funktion erstellen, um diese Reduzierung durchzuführen Operation:

def flatten(xss):
    return [x for xs in xss for x in xs]
Nach dem Login kopieren

Mit dieser Funktion können Sie die Eingabeliste wie folgt reduzieren:

flat_list = flatten([[1, 2, 3],
                   [4, 5, 6],
                   [7],
                   [8, 9]])
Nach dem Login kopieren

Dieser Ansatz ist hocheffizient und weist eine deutlich bessere Leistung als andere Methoden wie Using oder Reduce auf . Die Listenverständnistechnik stellt sicher, dass jedes Element nur einmal in die vereinfachte Liste kopiert wird.

Das obige ist der detaillierte Inhalt vonWie kann ich eine verschachtelte Liste in Python effizient 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