如何在 Python 上将列表的所有值导出到 csv

Vic*_*tor 4 python csv list python-3.x

list_1 = ['1','2','3','4','5','6','7','8']
list_2 = ['n1','n2','n3','n4','n5','n6','n7','n8','n9','n10']
list_3 = ['o1','o2','o3','o4','o5','o6','o7','o8','o9','o10']

cols = zip(list_1,list_2,list_3)

with open('file.csv', 'w', newline='') as f:
    thewriter = csv.writer(f)

    thewriter.writerow(['list_1','list_2','list_3'])
    for col in cols:
       thewriter.writerow(col)
Run Code Online (Sandbox Code Playgroud)

输出

list1   list2   list3
  1      n1      o1
  2      n2      o2
  3      n3      o3
  4      n4      o4
  5      n5      o5
  6      n6      o6
  7      n7      o7
  8      n8      o8
Run Code Online (Sandbox Code Playgroud)

预期产出

list1   list2   list3
  1      n1      o1
  2      n2      o2
  3      n3      o3
  4      n4      o4
  5      n5      o5
  6      n6      o6
  7      n7      o7
  8      n8      o8
         n9      o9
         n10     o10 
Run Code Online (Sandbox Code Playgroud)

我有 3 个列表,list_1有 8 个项目,list_2有 10 个项目,list_3也有 10 个项目,

但是,当我写的名单,CSV,list_2list_3列不显示最后2项。

RMP*_*MPR 5

这是 : 的默认行为zip:截断为最短迭代的长度。您可以zip_longest改用:

  • 先导入:
from itertools import zip_longest
Run Code Online (Sandbox Code Playgroud)
  • 然后将您分配的行替换为cols
cols = zip_longest(list_1,list_2,list_3, fillvalue="")
Run Code Online (Sandbox Code Playgroud)