20
A
回答
37
列表理解是比它更緊湊的明確for
循環建立一個列表和更快:
def slower():
result = []
for elem in some_iterable:
result.append(elem)
return result
def faster():
return [elem for elem in some_iterable]
這是因爲在list
調用.append()
導致列表對象增長(以塊的形式),以騰出空間而列表理解首先收集所有元素,然後創建list
以便一次性適合元素:
>>> some_iterable = range(1000)
>>> import timeit
>>> timeit.timeit('f()', 'from __main__ import slower as f', number=10000)
1.4456570148468018
>>> timeit.timeit('f()', 'from __main__ import faster as f', number=10000)
0.49323201179504395
+0
他們也使上面的代碼更清晰。 (我想你已經把它稱爲「明確」了。) – 2013-05-02 15:27:57
相關問題
- 1. Python:優化For循環使用列表理解
- 2. Sitecore:Sitecore.Web.WebUtil.Redirect優於Response.Redirect的優點是什麼?
- 3. mootools優於jquery的優點是什麼?
- 4. QAbstractItemModel優於QStandardItemModel的優點是什麼?
- 5. 什麼是beanshell for循環和數組的優雅解決方案
- 6. SSE SIMD優化For循環
- 7. iPhone SDK - 優化for循環
- 8. F#「for循環」優化
- 9. Java for循環優化
- 10. PHP for循環優化
- 11. 優化多個for循環
- 12. 優化嵌套for循環
- 13. RECFM = FB優於RECFM = F的優點/缺點是什麼?
- 14. 對於多個for循環使用單個整數有什麼優點?
- 15. pathmunge優於grep的優勢是什麼?
- 16. Kafka優於RabbitMQ的優勢是什麼?
- 17. 在循環中使用函數的優點是什麼?
- 18. generator.throw()的優點是什麼?
- 19. NSBinaryStoreType的優點是什麼?
- 20. mysqli_stmt_bind_result的優點是什麼?
- 21. RTSP的優點是什麼?
- 22. PyTables的優點是什麼?
- 23. AspectJ的優點是什麼?
- 24. MERGE優於簡單的IF EXISTS的優點是什麼?
- 25. 雙for循環Python列表理解
- 26. 雙for循環列表理解
- 27. 替換for循環與列表理解
- 28. Python列表理解 - for循環
- 29. 理解列表vs for循環
- 30. for循環到列表理解
我認爲他們比大多數(如果不是全部)情況下的循環更快。那就是,除了他們的美麗之外:) – BenDundee 2013-05-02 15:21:08
優勢在哪? – 2013-05-02 15:22:17
「我們期望答案得到事實,參考資料或具體專業知識的支持,但這個問題可能會引發爭論,爭論,投票或擴大討論。」似乎這個問題可以用「具體的事實[和]具體的專業知識」來支持。標記爲關閉的是BS,IMO。 – BenDundee 2013-05-02 15:37:03