2015-12-05 40 views
0

我的問題是創造一個功能,即接收一個元組,打印出象以下,其中空的空間(對應於其它行的數字)被填充空字符串的表示。的行數是由元組以最條目給出,例如,如果所有元組只有1個條目中只有一個行,如果所述元組中的一個具有2項將有2行。 任何人都可以告訴我一個這樣做的有效方法嗎? the image of the representation I want is in this picture.功能打印出外部表示

如果在一定元組有例如3項將有3條線等。

的圖片看起來是這樣的:

1 
2 2 2 3 3 
+0

給我們一些代碼。你試過什麼了? – linluk

回答

0
from itertools import zip_longest 

# test data 
test = [(2,), (2, 1), (2,), (3,), (3,)] 

# rearrange data into same-length columns 
lines = list(zip_longest(*test, fillvalue=" ")) 

# show results 
lines.reverse() 
for line in lines: 
    print(" ".join(str(i) for i in line)) 

產生

1 
2 2 2 3 3 
+0

謝謝你的快速反應,但有沒有這樣做使用迭代的方法嗎?例如一個爲cicle? –

+0

有一個在https://docs.python.org/3/library/itertools.html#itertools.zip_longest爲zip_longest配方除此之外:我建議一次通過數據找到最長的項目,一個通行證墊一切向長度,則'有效範圍內的行(最長-1,-1,-1):打印(」」。加入(COL [行]在數據COL))' –