2 回答
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)
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])
添加回答
举报