python使用列表的最佳方案
經(jīng)常寫Python程序的人,列表應(yīng)該是使用率最高數(shù)據(jù)結(jié)構(gòu)的了。我們使用列表的過程中,生成列表方式有很多種,哪一種方式性能是最好的呢?可能很多人都沒有關(guān)心過這個(gè)問題。假設(shè)要生成一個(gè)有1000個(gè)元素的列表。采用下面哪一種方式生成最好呢?
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))
以上四種方式,都可以實(shí)現(xiàn)一個(gè)有1000個(gè)元素的列表。為了知道哪一種方式耗時(shí)最少,我們需要進(jìn)行測(cè)試才可以知曉。測(cè)試耗時(shí)我們使用Timer方法,下面編寫具體測(cè)試代碼。
from timeit import Timer
t1 = 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")
測(cè)試程序編寫完成后,可以運(yùn)行看看結(jié)果。
連接方式: 1.2728083460242487 ms
append方法: 0.10177052899962291 ms
列表表達(dá)式: 0.03995161800412461 ms
range函數(shù): 0.01611424400471151 ms
通過測(cè)試我們可以看出來,使用range函數(shù)生成1000個(gè)元素列表,耗時(shí)是最少的。要想寫出高性能Python程序,掌握分析程序性能的方法和熟悉每一種數(shù)據(jù)結(jié)構(gòu)都是非常重要的技能。
以上就是python使用列表的最佳方案的詳細(xì)內(nèi)容,更多關(guān)于python列表的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python使用Colorama庫(kù)美化終端輸出的操作示例
在開發(fā)命令行工具或調(diào)試程序時(shí),我們可能會(huì)希望通過顏色來區(qū)分重要信息,比如警告、錯(cuò)誤、提示等,而 Colorama 是一個(gè)簡(jiǎn)單易用的 Python 庫(kù),可以幫助我們輕松地為終端輸出添加顏色,本文給大家介紹了Python使用Colorama庫(kù)美化終端輸出的操作示例,需要的朋友可以參考下2025-01-01
Python調(diào)用C/C++動(dòng)態(tài)鏈接庫(kù)的方法詳解
這篇文章主要介紹了Python調(diào)用C/C++動(dòng)態(tài)鏈接庫(kù)的方法,需要的朋友可以參考下2014-07-07
Python使用VIF實(shí)現(xiàn)檢測(cè)多重共線性
多重共線性是指多元回歸模型中有兩個(gè)或兩個(gè)以上的自變量,它們之間具有高度的相關(guān)性,本文主要介紹了如何使用VIF實(shí)現(xiàn)檢測(cè)多重共線性,需要的可以參考下2023-12-12
動(dòng)態(tài)創(chuàng)建類實(shí)例代碼
Python中要?jiǎng)?chuàng)建一個(gè)類的實(shí)例,要首先導(dǎo)入該類或者該類所屬的模塊。2009-10-10
pandas DataFrame運(yùn)算的實(shí)現(xiàn)
這篇文章主要介紹了pandas DataFrame運(yùn)算的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06

