2014-01-16 66 views
9

這個問題可能聽起來很主觀,但正如「禪」所說,(幾乎總是)有一種方法可以選擇,它最終不應該是主觀的。Python Zen - (只)一種方法

什麼方式是更好的? (1)是(IMO)非常清楚,但在許多答案中,使用map()。如果我們這樣做,則(2)和(3)(IMO至少)之間的可讀性幾乎相等。

對許多其他任務同樣重要,但我選擇了這個,因爲它可以代表所有類似的任務。

+1

它是安全的假定'.something()'不會修改'i'以任何方式? –

+3

總是列出理解。 – freakish

回答

8
  • 簡單比複雜好。
  • 可讀性計數。

兩者對於[i.something() for i in l]都是明確的論點。

這假定.something()不發生變異i,那你對Python的2

+1

那麼,如果這個函數變異了,哪個應該是首選呢? – thefourtheye

+5

@thefourtheye:以上都不是。在這種情況下,明確的'for'循環將是最好的:'對於l:item.something()'中的項目。使用列表理解或「地圖」的副作用是醜陋的。 –

+0

如果你想有一個返回值列表,那麼列表理解優於顯式for循環。推論:方法應該改變一個實例或返回一些有用的東西,這兩種方法都不太好。 – RemcoGerlich

相關問題