首頁 >後端開發 >Python教學 >如何在 Python 中轉置列表列表?

如何在 Python 中轉置列表列表?

Patricia Arquette
Patricia Arquette原創
2024-12-25 20:25:11533瀏覽

How Can I Transpose a List of Lists in Python?

轉置列表的列表

給定列表的列表,例如:

l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

我們的目標是轉置列表,結果在:

r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

使用zip

Python 中的 zip() 函數將多個可迭代物件中的元素組合到單一元組清單中。我們可以使用zip 透過將原始列表作為參數序列傳遞來建立轉置列表:

result = list(map(list, zip(*l)))

外部list() 將元組轉換為列表,map() 函數將此轉換應用於zip 結果中的每個元素。

使用 zip_longest

itertools.zip_longest() 函數與 zip 類似,但如果迭代的長度不同,它不會丟棄資料。它使用指定的填充值填充較短的可迭代物件(預設為無):

from itertools import zip_longest
result = list(map(list, zip_longest(*l, fillvalue=None)))

說明

轉置的關鍵是使用zip 來組合來自原始列表的子列表。 zip() 函數產生元組,其中包含同一索引處每個子列表中的一個元素。然後將這些元組轉換為清單以建立轉置清單的行。

透過使用 * 運算子將原始清單作為 zip 的參數解壓,我們可以在一行程式碼中轉置清單。 map() 函數用來確保結果是列表的列表。

以上是如何在 Python 中轉置列表列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn