繁体   English   中英

将列表的 Python 列表逐行写入 csv 文件

[英]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.

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