我正在應用我所學到的有關列表解析和通過Pep 8的閱讀。我遇到了文體困境。首先,代碼:在python中,如何設計一個複雜的列表理解
# Using nested for's and conditionals
for m, row in enumerate(board):
for n, piece in enumerate(row):
if (piece == self.color or piece == self.Color):
print(m, n, piece)
# Using list comprehensions
[
[
print(m, n, piece)
for n, piece in enumerate(row)
if (piece == self.color or piece == self.Color)
]
for m, row in enumerate(board)
]
給我,我會認爲佩普8排序斜靠朝嵌套了的做法,只是因爲(我),它看起來稍微更加直觀。也許我並沒有很好地理解列表理解的格式。這是我所能想到的最好的格式,同時保持79 col首選的包裝。
我認爲在這一點上我已經很好地掌握了列表解析,他們絕對適用於我認爲的這個應用程序,但是......它僅僅爲了使用列表解析而喜歡使用列表解析?
也許我只是需要重新考慮我的代碼架構?我不希望所以對這個(!)做出這樣的建議,但也許有一些洞察力,上面顯示的方法會更好地看待那裏的Pythonistas!
編輯:推薦的重複問題(在創建問題時沒有看到這個彈出的建議模式,否則我不會問!:D)完美地解決了這個問題。我想我應該更多地閱讀關於列表解析的「副作用」的含義,因爲我的問題肯定會出現這種情況。
Here's the duplicate link的情況下,重複的標記獲取刪除:
一如既往,感謝這麼偉大的答案!
它不建議使用副作用列表內涵。只需使用一個循環。 – AChampion
您發佈的代碼由於在列表理解中進行了打印而產生語法錯誤。你可能意思是'''print [[(m,n,piece)...]]''' – perigon
@ user55449你確定你使用的是正確版本的python嗎? – AChampion