2011-02-05 191 views
6

我有一個列表中有不同數量的元素(int)的列表。我想打印/寫入,但在列中而不是在行中。Python - 寫入列表的列表列表

例子:

l = [[1,2,3],[4,5],[6,7,8,9],[0]] 

結果:

1 4 6 0 
2 5 7 . 
3 . 8 . 
. . 9 . 

回答

14

要做到這一點,最簡單的方法是使用itertools.izip_longest()

for x in itertools.izip_longest(*l, fillvalue="."): 
    print " ".join(str(i) for i in x) 
3

此:

import itertools 

l = [[1,2,3],[4,5],[6,7,8,9],[0]] 

for t in itertools.izip_longest(*l): 
    print "".join("%3d" % x if x is not None else " ." for x in t) 

產生:

1 4 6 0 
    2 5 7 . 
    3 . 8 . 
    . . 9 .