列表推導式對比For循環執行效率


我們在前面的學習中都知道,如果把1-10以內的元素追加到一個新的列表表中,如果使用for循環我們可以這么做:

a = [] for i  in range(1,11): a.append(i) print(a)

輸出結果如下:

如果我們換成列表解析式來進行操作會是什么樣呢?接下來我們換成列表解析式,如下所示:

b = [a for a in range(1,11)] print(b)

輸出結果如下:

同樣的實現效果,那么到底哪種方式的效率更快呢?繼續分析,為了看執行效率,我們引入time模塊,來實際看一下兩種方式執行效率的差異:

我們首先看一下for循環執行的效率:

import time a = [] t0=time.clock() #獲取當前時間 for i in range(1,20000): a.append(i) print('for循環消耗的時間是:{a}'.format(a=time.clock()-t0))

輸出結果如下:

然后我繼續看一下列表解析式的執行效率:

t0=time.clock() b = [i for i in range(1,20000)] print("列表推導式消耗的時間:{}".format(time.clock()-t0))

 輸出結果如下:

總結對比:

 

當然,兩種方法運用好了,對我們后面的實際工作中都是有很大幫助的,列表推導式和for循環的應用場景不相同,本篇只是給大家分享兩者在處理程序上的效率差異性。不喜勿噴哈!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM