首页 > 解决方案 > 使用 writerow 将元素列表放在同一行中

问题描述

这是我的源代码。xs 是时间浮点数列表,我试图将列表中的所有元素放在同一行。

outFile=open('testing.csv','w',newline='')
writeFile=csv.writer(outFile)
writeFile.writerow(['cell'])
writeFile.writerow(['LevelLine for Impedance Magnitude:',baseline])
writeFile.writerow(['TimeMag (second):',xs])'

首先,我尝试使用 for 循环来加载数字,例如

for i in range(len(xs)-1):
   writeFile.writerow('TimeMag(second):',xs[i])

但是,此代码的输出结果将 xs[i] 打印在不同的行中。我曾尝试观看视频并检查了 CSV writerow 函数,但我找不到将元素列表放在同一行的任何内容。

我想要这样的输出:

输出:第 1 行:单元格第 2 行:TimeMag(second): xs[0] xs[1] xs[2] 等等。

请帮忙,谢谢!

标签: python-3.x

解决方案


你很近。您传递给的对象writerow()应该是一个平面可迭代对象,其中包含您要写入行的项目。您的尝试:

writeFile.writerow(['TimeMag (second):',xs])

...不是扁平的,因为它包含两个元素,其中一个 ( xs) 本身就是一个列表。相反,您基本上希望将您的字符串 ( 'TimeMag (second):') 添加到xs列表中。这应该可以满足您的期望:

writeFile.writerow(['TimeMag (second):'] + xs)

推荐阅读