轉置列表的列表
給定列表的列表,例如:
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中文網其他相關文章!