私は2つのリストを検討しています:
a = [2, 4, 7]
b = [6, 9, 10, 90, 80]
これらのリストをデータファイルに書き込んで、aとbが同じ長さではないことを考慮して、リスト「a」の要素を1つの列に、「b」の要素を2番目の列に表示したいと思います。
import itertools as it
import csv
with open('output.csv', 'w') as f:
csvw = csv.writer(f)
for aa, bb in it.izip_longest(a, b):
csvw.writerow(aa, bb)
または@katriealexに触発された短いバージョン:
with open('output.csv', 'w') as f:
csv.writer(f).writerows(it.izip_longest(a, b))
@eumiroからの小さなバリエーション
with open("test.txt","w") as fin:
#izip_longest create consecutive tuples of elements from the list of iterables
#where if any of the iterable's length is less than the longest length of the
#iterable, fillvalue is taken as default
#If you need formatted output, you can use str.format
#The format specifier here used specifies the length of each column
#to be five and '^' indicates that the values would be center alligned
for e in izip_longest(a,b,fillvalue=''):
print >>fin,"{:^5} {:^5}".format(*e)
#if you are using Python 3.x
#fin.write("{:^5} {:^5}\n".format(*e))