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]]
Das Ziel besteht darin, diese Struktur in eine einzige Liste zu reduzieren:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
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 ]
Dies entspricht dem Folgenden explizite Iteration mit verschachtelten Schleifen:
flat_list = [] for xs in xss: for x in xs: flat_list.append(x)
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]
Mit dieser Funktion können Sie die Eingabeliste wie folgt reduzieren:
flat_list = flatten([[1, 2, 3], [4, 5, 6], [7], [8, 9]])
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!