如何一次转置列表中的所有列表?
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)))
假设我在列表中有 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)))