Sie können zip verwenden.
>>> matrix = [
... [1, 2, 3],
... [4, 5, 6],
... [7, 8, 9]
... ]
>>> list(map(list, zip(*matrix)))
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Wenn Sie beim Übergeben eines iterierbaren Objekts an eine Funktion *
hinzufügen, wird es erweitert und übergeben.
Also sind "zip (* matrix)" und "zip ([1, 2, 3], [4, 5, 6], [7, 8, 9])" äquivalent.
Und wenn es sich um "Liste (zip (* Matrix))" handelt, ist der Inhalt ein Taple. Konvertieren Sie ihn daher mithilfe einer Karte in eine Liste.
>>> list(zip(*matrix))
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
>>> list(map(list, zip(*matrix)))
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Auf diese Weise erhalten Sie eine Fehlermeldung, wenn nur eine Zeile vorhanden ist.
>>> matrix = [1, 2, 3]
>>> list(map(list, zip(*matrix)))
TypeError: zip argument #1 must support iteration
Ich weiß nicht, wie viele Möglichkeiten eine Zeile überhaupt hat, um mit einer einzeiligen Matrix umzugehen.
(Zusatz)
Bei einer Zeile können Sie dies tun, ohne *
hinzuzufügen.
>>> matrix = [1, 2, 3]
>>> list(map(list, zip(matrix)))
[[1], [2], [3]]
Recommended Posts