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、列表表達式
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('列表表達式:', 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列表表達式: 0.03995161800412461 msrange函數(shù): 0.01611424400471151 ms
通過測試我們可以看出來,使用range函數(shù)生成1000個元素列表,耗時是最少的。要想寫出高性能Python程序,掌握分析程序性能的方法和熟悉每一種數(shù)據(jù)結(jié)構(gòu)都是非常重要的技能。
以上就是python使用列表的最佳方案的詳細內(nèi)容,更多關(guān)于python列表的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. android 控件同時監(jiān)聽單擊和雙擊實例2. 解決vue頁面刷新,數(shù)據(jù)丟失的問題3. Python 忽略文件名編碼的方法4. vue路由分文件拆分管理詳解5. 詳解android adb常見用法6. vue+vuex+axios從后臺獲取數(shù)據(jù)存入vuex,組件之間共享數(shù)據(jù)操作7. python logging.info在終端沒輸出的解決8. android studio實現(xiàn)簡單的計算器(無bug)9. python Selenium 庫的使用技巧10. python 讀txt文件,按‘,’分割每行數(shù)據(jù)操作
