如何垂直打印Python中不同长度的2D列表

问题描述:

实际上,我尝试这么做。如何垂直打印Python中不同长度的2D列表

我有一个一流的呼叫卡

class Card(object): 
def __init__(self, value, folldown,canMove): 
    self.value = value 
    self.folldown = folldown 
    self.canMove=canMove 

,我用它来打印

我要打印不同尺寸的a=[[0, 1], [0, 1, 2], [0, 1, 2, 3]]

二维列表中我要打印像这样

0 0 0 
1 1 1 
    2 2 
    3 

我试图打印这样

for i in range(len(a)): 
    for j in range(len(a[i])): 
     print a[i][j] 

但结果却是

0 
1 
0 
1 
2 
0 
1 
2 
3 
+5

看起来您希望我们为您编写一些代码。尽管许多用户愿意为遇险的编码人员编写代码,但他们通常只在海报已尝试自行解决问题时才提供帮助。证明这一努力的一个好方法是包含迄今为止编写的代码,示例输入(如果有的话),期望的输出以及实际获得的输出(控制台输出,回溯等)。您提供的细节越多,您可能会收到的答案就越多。检查[FAQ]和[问]。 –

+0

你可以显示你的代码请与你的错误,所以我们可以帮助解决这个问题? – idjaw

+0

玩弄[格式字符串语法](https://docs.python.org/3/library/string.html#format-string-syntax),看看你是否能得到它的工作。 – wwii

a = [[0, 1], [0, 1, 2], [0, 1, 2, 3]] 
print '\n'.join(['\t'.join([str(x[i]) if len(x) > i else '' for x in a]) for i in range(len(max(a)))]) 

#0 0 0 
#1 1 1 
#  2 2 
#   3 
+0

对于我的解决方案I如果len(x)> i else''for x in,则在x'print'上添加.value \ n'.join(['\ t'.join([str(x [i] .value)一个])我在范围内(len(max(a)))])'' – pdecarcer

另外,一个在线解决方案

a = [[0, 1], [0, 1, 2], [0, 1, 2, 3]] 
from itertools import izip_longest 
print "\n".join(("\t".join(map(str,l)) for l in izip_longest(*a, fillvalue=""))) 

你:

 
0 0 0 
1 1 1 
    2 2 
     3