Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich eine Liste von Listen in Python transponieren?
Transponieren einer Liste von Listen
Gegeben eine Liste von Listen, wie zum Beispiel:
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Unser Ziel ist um die Liste zu transponieren, was zu Folgendem führt:
r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Using zip
Die zip()-Funktion in Python kombiniert Elemente aus mehreren Iterables in einer einzigen Liste von Tupeln. Wir können zip verwenden, um eine transponierte Liste zu erstellen, indem wir die ursprüngliche Liste als Folge von Argumenten übergeben:
result = list(map(list, zip(*l)))
Die äußere list() wandelt die Tupel in Listen um und die Funktion map() wendet diese Transformation auf an jedes Element im Zip-Ergebnis.
Verwendung von zip_longest
Die itertools.zip_longest() Die Funktion ähnelt zip, verwirft jedoch keine Daten, wenn die Iterables unterschiedliche Längen haben. Es füllt kürzere Iterables mit einem angegebenen Füllwert (standardmäßig keiner):
from itertools import zip_longest result = list(map(list, zip_longest(*l, fillvalue=None)))
Erklärung
Der Schlüssel zur Transposition ist die Verwendung von zip, um Elemente aus dem zu kombinieren Unterlisten der ursprünglichen Liste. Die Funktion zip() generiert Tupel, die ein Element aus jeder Unterliste am gleichen Index enthalten. Diese Tupel werden dann in Listen umgewandelt, um die Zeilen der transponierten Liste zu erstellen.
Durch die Verwendung des *-Operators zum Entpacken der ursprünglichen Liste als Argumente für zip können wir die Liste in einer einzigen Codezeile transponieren. Die Funktion „map()“ wird verwendet, um sicherzustellen, dass das Ergebnis eine Liste von Listen ist.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Liste von Listen in Python transponieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!