我的列表每次都是动态生成的,但对于本示例,列表可以是 0 - 24 的基本范围。该列表由我的函数分割并写入 CSV 文件。这是一些代码:
numSeq = range(25)
def split_list(alist, rows):
length = len(alist)
return [alist [i*length // rows: (i+1)*length // rows] for i in range(rows)]
with open(csvfile, "w") as output:
writer = csv.writer(output, lineterminator='\n')
writer.writerows(split_list(numSeq, 5))
这几乎可以正常工作。问题是,我想将其分成列而不是行。具体来说,它会像这样写入 CSV:
00,01,02,03,04
05,06,07,08,09
10,11,12,13,14
15,16,17,18,19
20,21,22,23,24
但是,我需要它像这样拆分和写:
00,05,10,15,20
01,06,11,16,21
02,07,12,17,22
03,08,13,18,23
04,09,14,19,24
知道我该怎么做吗?提前致谢!
抱歉,格式不正确,我使用的是移动设备!
最佳答案
您可以使用 zip()
转置结果列表功能:
writer.writerows(zip(*split_list(numSeq, 5)))
示例:
>>> lst = [[1, 2, 3], [4, 5, 6]]
>>> zip(*lst)
[(1, 4), (2, 5), (3, 6)]
关于Python 将列表中的数据保存到 CSV 的列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34171415/