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