为了账号安全,请及时绑定邮箱和手机立即绑定

将 Python 列表逐行写入 csv 文件

将 Python 列表逐行写入 csv 文件

莫回无 2023-08-08 16:00:54
我有一个这样的清单[[1.75], [4.75]][[2.5], [2.5]][[3.5], [3.5]][[4.0], [4.0]]我想将其写入 csv 文件,例如1.75, 4.752.5, 2.53.5, 3.54.0, 4.0当我尝试使用模块writerows方法时csv,它被保存为1.754.752.52.53.53.54.04.0
查看完整描述

2 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

您需要将每一行解压到一个平面列表中。


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)


查看完整回答
反对 回复 2023-08-08
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

这是一个可能的解决方案:


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])


查看完整回答
反对 回复 2023-08-08
  • 2 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信