2012-11-01 6 views
1

data을 CSV로 내보내려고합니다. 여기서 데이터의 항목은 길이가 다른 두 목록입니다.리스트가 같은 길이가 아닌 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[1]의 길이에 의해 한정되지 않고 data[0]의 모든 값을 포함하려면 코드를 수정할 수 있습니까?

답변

5

실제로, zip은 가장 짧은 iterable의 끝에 도달하는 것을 멈 춥니 다. itertools.izip_longest은 가장 긴 iterable의 끝까지 압축하려고 할 때 사용하는 함수입니다.

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

우수 감사합니다. –

관련 문제