2 回答

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
您需要將每一行解壓到一個(gè)平面列表中。
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可以用生成器表達(dá)式替換循環(huán),以便您可以writerows像當(dāng)前一樣使用:
writer.writerows([l[0] for l in row] for row in my_list)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
這是一個(gè)可能的解決方案:
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])
或者,您可以使用以下方法來(lái)扁平化您的列表itertools.chain:
from itertools import chain
...
w.writerows([list(chain(*line)) for line in lst])
添加回答
舉報(bào)