2015-09-04 41 views
3

我想在Python中製作圖形設計的問題,更具體地說是ASCII「橫幅」單詞。每個字母都由字符行的嵌套列表組成。在某些方向上打印嵌套列表 - Python

[[' _______ ', '(  )', '|()() |', '| || || |', '| |(_)| |', '| | | |', '|) (|', '|/  \\|'], [' _______ ', '( ____ \\', '| ( \\/', '| (__ ', '| __) ', '| (  ', '| (____/\\', '(_______/']] 

當打印下來每個嵌套表和整個整個的事情,他們提出了一個字。 正如我上面所說,我無法打印它,每個嵌套列表和整個事物都是如此。 在此先感謝!

+0

,你能否告訴我們到目前爲止你已經嘗試了什麼? –

+0

是否要打印列表中的每個元素它不清楚你要問什麼 – The6thSense

回答

9

如果你想打印從左邊的字母對,你將不得不zip與自己的名單,有效地"transposing"它。這樣,第一個列表將包含所有第一行,第二個列表包含所有第二行,依此類推。現在只需join那些,你就完成了。

>>> ascii = [[' _______ ', '(  )', '|()() |', '| || || |', '| |(_)| |', '| | | |', '|) (|', '|/  \\|'], [' _______ ', '( ____ \\', '| ( \\/', '| (__ ', '| __) ', '| (  ', '| (____/\\', '(_______/']] 
>>> print '\n'.join((' '.join(line) for line in zip(*ascii))) 
_______ _______ 
(  ) ( ____ \ 
|()() | | ( \/ 
| || || | | (__  
| |(_)| | | __) 
| | | | | (  
|) (| | (____/\ 
|/  \| (_______/ 

如果你想從頂部打印信件底部,您可以使用此:

>>> print '\n\n'.join(('\n'.join(line) for line in ascii)) 
+0

這是非常好的。如果'''.join(line)'被替換爲'''.join(line)',那麼兩個字母之間會有一個很好的間距。 –

+0

@JohnColeman你說得對,我加了一些空格。 –

+0

這正是我想要的。非常感謝你! – dcarroll9999

2

雖然不清楚你想要什麼輸出,但我相信你可以從使用string.join()函數中受益。

編輯

啊哈,這是現在很清楚你正在嘗試做的。使用@tobias_k的解決方案,我建議你可以很容易通過做這樣的事情來編輯你的信:

m = """ 
_______ 
(  ) 
|()() | 
| || || | 
| |(_)| | 
| | | | 
|) (| 
|/  \| 
""".split('\n') 

e = """ 
_______ 
( ____ \ 
| ( \/ 
| (__  
| __)  
| (  
| (____/\ 
(_______/ 
""".split('\n') 

lines = zip(m,e,m,e) # Spell the word you want here 
print '\n'.join(' '.join(line) for line in lines) 

給出輸出:

_______ _______ _______ _______ 
(  ) ( ____ \ (  ) ( ____ \ 
|()() | | ( \/ |()() | | ( \/ 
| || || | | (__  | || || | | (__  
| |(_)| | | __)  | |(_)| | | __)  
| | | | | (  | | | | | (  
|) (| | (____/\ |) (| | (____/\ 
|/  \| (_______/ |/  \| (_______/