Python将列表中的数据保存到CSV中的列中

时间:2015-12-09 05:33:17

标签: python list csv

我的列表每次都是动态生成的,但是对于这个例子,列表可以是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))

这几乎可以正常工作。问题是,我想将它拆分成列而不是行。具体来说,它是这样写的:

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

关于如何做到这一点的任何想法?提前谢谢!

抱歉格式不佳,我正在使用手机!

1 个答案:

答案 0 :(得分:4)

您可以使用zip()函数转换结果列表:

writer.writerows(zip(*split_list(numSeq, 5)))

示例:

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