2015-12-09 96 views
2

我的列表每次都會動態生成,但對於此示例,列表可以是0 - 24的基本範圍。列表按照我的函數拆分並寫入CSV文件。下面是一段代碼:Python將列表中的數據保存到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 

上,我怎麼能去這樣做的任何想法?提前致謝!

對不起格式不好,我在移動!

+0

退房的溶液中:http://stackoverflow.com/questions/10507104/row-to -column-transposition-in-python –

回答

4

可以移調使用zip()的所得列表:

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

例子:

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

這很好用!我不知道zip()簡單地工作。感謝你及時的答覆。 – dimensive

相關問題