[英]Write Python list of lists row wise to a csv file
我有一个这样的清单
[[1.75], [4.75]]
[[2.5], [2.5]]
[[3.5], [3.5]]
[[4.0], [4.0]]
我想把它写到一个 csv 文件中
1.75, 4.75
2.5, 2.5
3.5, 3.5
4.0, 4.0
当我尝试使用csv
模块的writerows
方法时,它被保存为
1.75
4.75
2.5
2.5
3.5
3.5
4.0
4.0
您需要将每一行解压缩到一个平面列表中。
import csv
my_list = [
[[1.75], [4.75]],
[[2.5], [2.5]],
[[3.5], [3.5]],
[[4.0], [4.0]],
]
with open("my.csv", "w") as f:
writer = csv.writer(f)
for row in my_list:
writer.writerow([l[0] for l in row])
或者,如果愿意,可以将for
循环替换为生成器表达式,以便您可以像当前一样使用writerows
:
writer.writerows([l[0] for l in row] for row in my_list)
这是一个可能的解决方案:
import csv
lst = [[[1.75], [4.75]],
[[2.5], [2.5]],
[[3.5], [3.5]],
[[4.0], [4.0]]]
with open('file.csv', 'w') as f:
writer = csv.writer(f)
w.writerows([[x[0] for x in lst] for line in lst])
或者,您可以使用itertools.chain
来平展您的列表:
from itertools import chain
...
w.writerows([list(chain(*line)) for line in lst])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.