我尝试将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]
的长度限制?
答案 0 :(得分:5)
实际上,zip
会停止到达最短迭代的末尾。
当你想要压缩到最长迭代的末尾时,itertools.izip_longest是要使用的函数。
import itertools
export_data = itertools.izip_longest(*data, fillvalue = '')