轉置列表列表
給定一個列表列表,目標是轉置它,反轉行和列。例如,對於輸入:
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
所需的輸出為:
r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Python 3 解:
list(map(list, zip(*l)))
此解決方案使用 zip 迭代列表的列,並使用 map 將每一列轉換為列表。
list(map(list, itertools.zip_longest(*l, fillvalue=None)))
此解決方案使用itertools.zip_longest,其工作方式與一個工作方式類似,但fillvalue 參數,用於在列表呈鋸齒狀時填入缺失值。
Python 2解:
map(list, zip(*l))
解釋:
zip 函數建立一個元組迭代器,其中一個元組迭代器,其中一個元組迭代器,其中一個元組迭代器,其中一個元組迭代器,其中一個元組迭代器每個元組代表輸入清單中的一列。透過使用 *l 解壓縮參數列表,zip 並行迭代每一列。然後,map 函數將每個元組轉換為列表,產生所需的轉置列表。
注意:Python 2 的 zip 沒有 fillvalue 參數,因此如果清單是鋸齒狀。
以上是如何在 Python 中轉置列表的列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!