[英]Printing nested lists in certain directions - Python
我正在嘗試用Python制作圖形設計的問題,更具體地說是ASCII“橫幅”字。 每個字母由字符的嵌套列表組成。
[[' _______ ', '( )', '| () () |', '| || || |', '| |(_)| |', '| | | |', '| ) ( |', '|/ \\|'], [' _______ ', '( ____ \\', '| ( \\/', '| (__ ', '| __) ', '| ( ', '| (____/\\', '(_______/']]
等等
當為每個嵌套列表向下打印並為整個事物打印時,它們會形成一個單詞。 我正如上面所說的那樣打印它時遇到問題,對於每個嵌套列表都是如此。 提前致謝!
如果你想從左到右打印字母,你必須自己zip
列表列表,有效地“轉置”它。 這樣,第一個列表將包含所有第一行,第二個列表包含所有第二行,依此類推。 現在join
這些,你就完成了。
>>> ascii = [[' _______ ', '( )', '| () () |', '| || || |', '| |(_)| |', '| | | |', '| ) ( |', '|/ \\|'], [' _______ ', '( ____ \\', '| ( \\/', '| (__ ', '| __) ', '| ( ', '| (____/\\', '(_______/']]
>>> print '\n'.join((' '.join(line) for line in zip(*ascii)))
_______ _______
( ) ( ____ \
| () () | | ( \/
| || || | | (__
| |(_)| | | __)
| | | | | (
| ) ( | | (____/\
|/ \| (_______/
如果你想從上到下打印字母,你可以使用:
>>> print '\n\n'.join(('\n'.join(line) for line in ascii))
雖然不清楚你想要什么輸出,但我相信你可以從使用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)
給出輸出:
_______ _______ _______ _______
( ) ( ____ \ ( ) ( ____ \
| () () | | ( \/ | () () | | ( \/
| || || | | (__ | || || | | (__
| |(_)| | | __) | |(_)| | | __)
| | | | | ( | | | | | (
| ) ( | | (____/\ | ) ( | | (____/\
|/ \| (_______/ |/ \| (_______/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.