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])
添加回答
舉報