编写一个csv,其中列表的长度不同

时间:2012-11-01 22:17:22

标签: python csv

我尝试将data导出到csv,其中数据中的项目是两个长度不等的列表。

import csv

item_dictionary = {'13742': 'cat', '25037':'dog'}
names = item_dictionary.values()

data = [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10]]

export_data = zip(*data)

myfile = open('sample.csv', 'wb')
wr = csv.writer(myfile)
wr.writerow(names)
wr.writerows(export_data)
myfile.close()

这给了我这个输出,它排除了data[0]中的5和6。

dog  cat
1    7
2    8
3    9
4    10

我想要的是:

dog  cat
1    7
2    8
3    9
4    10
5
6

如何修改我的代码以包含data[0]的所有值,而不受data[1]的长度限制?

1 个答案:

答案 0 :(得分:5)

实际上,zip会停止到达最短迭代的末尾。 当你想要压缩到最长迭代的末尾时,itertools.izip_longest是要使用的函数。

import itertools
export_data = itertools.izip_longest(*data, fillvalue = '')