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

Wie kann ich eine Liste von Listen in Python transponieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-25 20:25:11534Durchsuche

How Can I Transpose a List of Lists in Python?

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!

Stellungnahme:
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