首页 > 解决方案 > 到 csv 的 2D 列表 - 按列

问题描述

我想将二维列表的内容导出到 csv 文件中。

子列表的大小可以不同。例如,二维列表可以是:

a = [ ['a','b','c','d'], ['e','f'], ['g'], [], ['h','i'] ]

我希望我的 csv 存储这样的数据 - “按列”:

a,e,g, ,h
b,f, , ,i
c
d

我是否必须添加一些空格才能使每个子列表的大小相同?还是有其他方法可以做到这一点?

感谢您的帮助

标签: pythonlistcsv

解决方案


您可以使用itertools.zip_longest

import itertools, csv
a = [ ['a','b','c','d'], ['e','f'], ['g'], [], ['h','i'] ]
with open('filename.csv', 'w') as f:
  write = csv.writer(f)
  write.writerows(list(itertools.zip_longest(*a, fillvalue=''))) 

输出:

a,e,g,,h
b,f,,,i
c,,,,
d,,,,

推荐阅读