列表解析和 for 循環(huán)的比較

前言

喜歡的話,歡迎來我的個人博客來玩呀,博客地址。如果有實習(xí)機會的話,歡迎聯(lián)系我,

分析

首先先放上,Stackflow 的高票答案的結(jié)論

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.

顯然,列表推導(dǎo)比 for 循環(huán)稍快。

答者的分析為列表解析沒有創(chuàng)造一個列表的實體,所以它的稍微的性能提升來源于不需要在每次迭代中查找列表,和使用它的 append 函數(shù)。

其他理解

正如文中說,這種優(yōu)化方案是沒有意義的,因為你話費同樣的經(jīng)歷去優(yōu)化你的 python 代碼,不如重構(gòu)成 C 的代碼來優(yōu)化,這樣子前者的效率提高只是 15% 左右,而后者會得到 300% 的提高,這是數(shù)量級的優(yōu)化。

參考文章

Stackflow的提問: Are list-comprehensions and functional functions faster than “for loops”?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容