Heim > Backend-Entwicklung > Python-Tutorial > Wie transponiere ich eine Liste von Listen in Python?

Wie transponiere ich eine Liste von Listen in Python?

DDD
Freigeben: 2024-12-20 02:45:10
Original
743 Leute haben es durchsucht

How to Transpose a List of Lists in Python?

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

die gewünschte Ausgabe ist:

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

Python 3-Lösungen:

  • Zip und Karte verwenden:
list(map(list, zip(*l)))
Nach dem Login kopieren

Dies Die Lösung verwendet zip, um über die Spalten der Liste zu iterieren und zuzuordnen, um jede Spalte in eine Liste umzuwandeln.

  • Verwendung von zip_longest von itertools:
list(map(list, itertools.zip_longest(*l, fillvalue=None)))
Nach dem Login kopieren

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

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage