前言
喜歡的話,歡迎來我的個人博客來玩呀,博客地址洽胶。如果有實習機會的話,歡迎聯(lián)系我裆馒,
分析
首先先放上姊氓,Stackflow 的高票答案的結論
A list comprehension is usually a tiny bit faster than the precisely equivalent for loop (that actually builds a list), most likely because it doesn't have to look up the list and its append method on every iteration. However, a list comprehension still does a bytecode-level loop.
顯然,列表推導比 for 循環(huán)稍快喷好。
答者的分析為列表解析沒有創(chuàng)造一個列表的實體翔横,所以它的稍微的性能提升來源于不需要在每次迭代中查找列表,和使用它的 append 函數梗搅。
其他理解
正如文中說禾唁,這種優(yōu)化方案是沒有意義的,因為你話費同樣的經歷去優(yōu)化你的 python 代碼无切,不如重構成 C 的代碼來優(yōu)化荡短,這樣子前者的效率提高只是 15% 左右,而后者會得到 300% 的提高哆键,這是數量級的優(yōu)化肢预。
參考文章
Stackflow的提問: Are list-comprehensions and functional functions faster than “for loops”?