如何一次转置列表中的所有列表?

How to transpose all the lists in a list at once?

假设我在列表中有 2 个列表:

List = [[1,2,3], [4,5,6]]

如果我想调换这两个列表,我会这样做:

NewList = zip (List[0], List[1])

在这种情况下,如果我使用以下方法将列表导出到 csv 文件:

with open("Transposed.csv", "wb") as f:
    writer = csv.writer(f)
    writer.writerows(NewList)

我会得到这个:

1 4
2 5
3 6

现在如果我在主列表中有大量列表,并且我想避免手动将它们中的每一个添加到 zip 函数中,有没有一种方法可以做一个 for 循环转置主列表中的所有列表?而不是这样:

NewList = zip (List[0], List[1]), ......List[20])

使用可迭代参数解包:

>>> data = [[1,2,3], [4,5,6]]
>>> list(zip(*data))
[(1, 4), (2, 5), (3, 6)]
import csv
data = [[1,2,3], [4,5,6]]

with open("Transposed.csv") as f:
    w = csv.writer(f)
    for row in zip(*data):
        w.writerow(list(map(str, row)))