如何将多个列表中的元素写入到csv中,其中每个元素都属于每一行?

时间:2019-09-05 17:37:46

标签: python csv

请帮助我解决有关csv文件的问题。我有2个列表,我想将它们写到一个csv文件中,如下所示:

X = [12,423,56]
Y = [35,78,321]

csv文件还包含一个自动生成的索引列“ No”:

No,X,Y
1,12,35
2,423,78
3,56,321

1 个答案:

答案 0 :(得分:2)

您可以使用标准库中的csv模块以及zipenumerate内置函数来完成此操作。

with open('myfile.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    # Write column headers
    writer.writerow(['No', 'X', 'Y'])
    for i, (a, b) in enumerate(zip(X,Y), start=1):
        writer.writerow([i, a, b])

输出:

No,X,Y
1,12,35
2,423,78
3,56,321

csv模块提供了用于读取和写入csv文件的工具。

enumerate输出循环的每次迭代的索引;在这里,我们将其配置为使用1作为起始值-默认情况下,它从零开始。

zip接受一个或多个可迭代对象作为输入,循环遍历每个可迭代对象,并每次从可迭代对象中的后续位置产生元素:

  • 第一次迭代:从每个可迭代项中产生项目0
  • 第二次迭代:从每个可迭代的对象中获得项

如果可迭代项的长度不尽相同。zip一旦消耗了最短的可迭代项就停止产生。