這個問題可能聽起來很主觀,但正如「禪」所說,(幾乎總是)有一種方法可以選擇,它最終不應該是主觀的。Python Zen - (只)一種方法
什麼方式是更好的? (1)是(IMO)非常清楚,但在許多答案中,使用map()
。如果我們這樣做,則(2)和(3)(IMO至少)之間的可讀性幾乎相等。
對許多其他任務同樣重要,但我選擇了這個,因爲它可以代表所有類似的任務。
這個問題可能聽起來很主觀,但正如「禪」所說,(幾乎總是)有一種方法可以選擇,它最終不應該是主觀的。Python Zen - (只)一種方法
什麼方式是更好的? (1)是(IMO)非常清楚,但在許多答案中,使用map()
。如果我們這樣做,則(2)和(3)(IMO至少)之間的可讀性幾乎相等。
對許多其他任務同樣重要,但我選擇了這個,因爲它可以代表所有類似的任務。
兩者對於[i.something() for i in l]
都是明確的論點。
這假定.something()
不發生變異i
,那你對Python的2
那麼,如果這個函數變異了,哪個應該是首選呢? – thefourtheye
@thefourtheye:以上都不是。在這種情況下,明確的'for'循環將是最好的:'對於l:item.something()'中的項目。使用列表理解或「地圖」的副作用是醜陋的。 –
如果你想有一個返回值列表,那麼列表理解優於顯式for循環。推論:方法應該改變一個實例或返回一些有用的東西,這兩種方法都不太好。 – RemcoGerlich
它是安全的假定'.something()'不會修改'i'以任何方式? –
總是列出理解。 – freakish