2017-04-12 67 views
-2

我想縮短代碼 以下塊,但我不知道如何Python 3裏無法縮短這個代碼

發佈引擎收錄,因爲它是70行: https://pastebin.com/g2P8Lpbd

的代碼的預期功能是打印出一個心形的網格,它就是這樣做的。

+2

70線應該沒問題後,併爲這裏的人們更容易。哪一位最慢,需要優化? –

+0

對不起,我的意思是縮短 –

+0

很高興知道你在做什麼的意圖。這段代碼需要做什麼? –

回答

2

所以有一些事情需要一些工作循環。你基本上是有很多塊看起來像這樣:

var2= 0 
var = 1 
print() 
for i in range(9): 
    print(grid[var][var2],end=' ') 
    var2= var2+1 

varvar2是控制哪些元素列表清單中被打印出來。但是,你在for循環使用i,當你可以使用來獲取列表元素:

for element in grid[var]: 
    print(element, end=' ') 

您也可以嵌套在彼此內的循環,這意味着你可以將其替換所有現有代碼:

for outer in grid: 
    for element in outer: 
     print(element, end=' ') 

或者更短:

for outer in grid: 
    print("".join(outer)) 
+0

很好的答案!這應該是接受的 最後一節是我會做到這一點的方式,不需要跟蹤列表索引,只需要連接行並打印每一行即可。 –

+1

實際上有一個oneliner:'print(「\ n」.join([「」.join(row)in grid]),end ='')' – Szabolcs

+1

真的,但可能太多了,如果OP在循環中遇到問題。 –