2011-02-05 139 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 .