将列表和列表的列表转换为python中的csv

时间:2017-08-09 12:48:00

标签: python list csv

我一直在尝试将ctfroot listlist写在python中list的同一行上。

csv

但我得到了

d=[[1,2,3,4,5,6],[2,3,4,5,6,7]]
timestamp = [0.1, 0.3] # Basically timestamping for each list of d
file = open('test.csv', 'w')
writer = csv.writer(file, delimiter=',',lineterminator='\n')
writer.writerows(zip(d, timestamp)) 

我希望保存我的col1 , col2 [1,2,3,4,5,6], 0.1 [2,3,4,5,6,7], 0.3 ,如下所示:

csv

请有人帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

您可以将timestamp中的每个项目添加到d中的相应子列表中:

>>> [x+[y] for x, y in zip(d, timestamp)]
[[1, 2, 3, 4, 5, 6, 0.1], [2, 3, 4, 5, 6, 7, 0.3]]

您的代码变为:

...
writer.writerows(x+[y] for x, y in zip(d, timestamp)) 

在Python 3中,您可以使用扩展解包而无需创建内部列表:

>>> [x+y for x, *y in zip(d, timestamp)]
[[1, 2, 3, 4, 5, 6, 0.1], [2, 3, 4, 5, 6, 7, 0.3]]

答案 1 :(得分:0)

解压缩列表的方法略有不同:

writer.writerows((*a, b) for a, b in zip(d, timestamp))

这会迭代行

(1, 2, 3, 4, 5, 6, 0.1)
(2, 3, 4, 5, 6, 7, 0.3)

(但基本上与this answer中的想法相同)