繁体   English   中英

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

[英]Python saving data from lists into columns in a 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))

这几乎可以正常工作。 问题是,我想将其拆分为列而不是行。 具体来说,它是这样写入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)] 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM