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

时间:2018-02-05 22:48:31

标签: python python-2.7 list transpose

我们说我在列表中有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])

2 个答案:

答案 0 :(得分:2)

使用iterable参数解包:

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

答案 1 :(得分:0)

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)))