我如何将3D列表在python转换为csv文件?



我有一个3D列表,像

final_arr = [[[1,2,3,4],2],[[1,1,2,2],3],[[1,2,2],4]]

现在我要将每一行转换为csv列,例如对于第一个列表项,列应该是csv单行和多列中的1 2 3 4 2

现在我正在这样做但是整个列表在csv中变成了单列:

import csv
with open("out1.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerows(final_arr)

客观是这样的吗?

final_arr = [[[1,2,3,4],2],[[1,1,2,2],3],[[1,2,2],4]]

with open('out1.csv', 'w') as f:
for (i, j) in final_arr:
print(*i, j, file=f)
# out1.csv
1 2 3 4 2
1 1 2 2 3
1 2 2 4

编辑:由@juanpa建议。arrivillaga使用csv模块和writerow的方法相同:

import csv
with open('out1.csv', 'w', newline="") as f:
writer = csv.writer(f, delimiter=" ")
for (i, j) in final_arr:
writer.writerow((*i, j))

writerows:

with open('out1.csv', 'w', newline="") as f:
writer = csv.writer(f, delimiter=" ")
writer.writerows((*i, j) for (i, j) in final_arr)

作为Aivar答案的延伸,

您的列表不是3D列表。它是一个2D列表,其中的元素可以是数组。对于所提供的数组,我们可以应用这个Alvar的答案。在文件内部打印时,您可能需要添加分隔符。

final_arr = [[[1,2,3,4],2],[[1,1,2,2],3],[[1,2,2],4]]
with open('out1.csv', 'w') as f:
for (i, j) in final_arr:
print(*i, j, file=f, sep=',')

相关内容

  • 没有找到相关文章

最新更新