Eine Liste von Listen transponieren
Bei einer gegebenen Liste von Listen besteht das Ziel darin, sie zu transponieren und dabei die Zeilen und Spalten umzukehren. Zum Beispiel für die Eingabe:
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
die gewünschte Ausgabe ist:
r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Python 3-Lösungen:
list(map(list, zip(*l)))
Dies Die Lösung verwendet zip, um über die Spalten der Liste zu iterieren und zuzuordnen, um jede Spalte in eine Liste umzuwandeln.
list(map(list, itertools.zip_longest(*l, fillvalue=None)))
Diese Lösung verwendet itertools.zip_longest, das ähnlich wie zip funktioniert, aber einen Fillvalue-Parameter enthält, um fehlende Werte zu ergänzen, wenn die Listen vorhanden sind gezackt.
Python 2-Lösung:
map(list, zip(*l))
Erklärung:
Die Zip-Funktion erstellt einen Iterator von Tupeln, wobei jedes Tupel eine Spalte in der Eingabeliste darstellt. Durch das Entpacken der Argumentliste mit *l iteriert zip parallel über jede Spalte. Die Map-Funktion wandelt dann jedes Tupel in eine Liste um und erzeugt so die gewünschte transponierte Liste.
Hinweis: Die ZIP-Funktion von Python 2 verfügt nicht über den Fillvalue-Parameter, daher werden Daten verworfen, wenn die Listen vorhanden sind gezackt.
Das obige ist der detaillierte Inhalt vonWie transponiere ich eine Liste von Listen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!