python使用列表的最佳方案
經(jīng)常寫Python程序的人,列表應(yīng)該是使用率最高數(shù)據(jù)結(jié)構(gòu)的了。我們使用列表的過程中,生成列表方式有很多種,哪一種方式性能是最好的呢?可能很多人都沒有關(guān)心過這個問題。假設(shè)要生成一個有1000個元素的列表。采用下面哪一種方式生成最好呢?
1、連接方式
def gen_list1(): l = [] for i in range(1000):l = l + [i]
2、append方法
def gen_list2(): l = [] for i in range(1000):l.append(i)
3、列表表達(dá)式
def gen_list3(): l = [i for i in range(1000)]
4、range函數(shù)
def gen_list4(): l = list(range(1000))
以上四種方式,都可以實現(xiàn)一個有1000個元素的列表。為了知道哪一種方式耗時最少,我們需要進行測試才可以知曉。測試耗時我們使用Timer方法,下面編寫具體測試代碼。
from timeit import Timert1 = Timer('gen_list1()', 'from __main__ import gen_list1')print('連接方式:', t1.timeit(number=1000), 'ms')t2 = Timer('gen_list2()', 'from __main__ import gen_list2')print('append方法:', t2.timeit(number=1000), 'ms')t3 = Timer('gen_list3()', 'from __main__ import gen_list3')print('列表表達(dá)式:', t3.timeit(number=1000), 'ms')t4 = Timer('gen_list4()', 'from __main__ import gen_list4')print('range函數(shù):', t4.timeit(number=1000), 'ms')
測試程序編寫完成后,可以運行看看結(jié)果。
連接方式: 1.2728083460242487 msappend方法: 0.10177052899962291 ms列表表達(dá)式: 0.03995161800412461 msrange函數(shù): 0.01611424400471151 ms
通過測試我們可以看出來,使用range函數(shù)生成1000個元素列表,耗時是最少的。要想寫出高性能Python程序,掌握分析程序性能的方法和熟悉每一種數(shù)據(jù)結(jié)構(gòu)都是非常重要的技能。
以上就是python使用列表的最佳方案的詳細(xì)內(nèi)容,更多關(guān)于python列表的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. 解決AJAX返回狀態(tài)200沒有調(diào)用success的問題2. CSS hack用法案例詳解3. PHP設(shè)計模式中工廠模式深入詳解4. .NET中l(wèi)ambda表達(dá)式合并問題及解決方法5. Ajax實現(xiàn)表格中信息不刷新頁面進行更新數(shù)據(jù)6. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明7. JSP數(shù)據(jù)交互實現(xiàn)過程解析8. ThinkPHP5實現(xiàn)JWT Token認(rèn)證的過程(親測可用)9. ASP.NET MVC遍歷驗證ModelState的錯誤信息10. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向
