Python代碼執(zhí)行時間測量模塊timeit用法解析
1.timeit模塊
timeit模塊可以用來測試一小段python代碼的執(zhí)行速度
class timeit.Timer(stmt = 'pass',setup = 'pass',timer=<timer function>)
- Timer是測量小段代碼執(zhí)行速度的類
- stmt參數(shù)是要測試的代碼語句(statment);
- setup參數(shù)是運行代碼時需要的設置;
- timer參數(shù)是一個定時器函數(shù),與平臺有關(windows,unix,linux,mac)。
timeit.timer(number = 10000)
Timer類中測試語句執(zhí)行速度的對象方法。number參數(shù)是測試代碼時的測試次數(shù),默認為1000000(一百萬)次。
該方法返回執(zhí)行代碼的平均耗時,是一個float類型的seconds。
2.使用timeit模塊對python中l(wèi)ist內置操作的時間復雜度測算


3.測算代碼塊:
#下面列出list的幾種常用內置方法以及l(fā)ist的幾種構建方法
#coding:utf-8
#導入timeit模塊
import timeit
#t1,以+的方式構建列表
'''
li1 = [1,2]
li2 = [23,24]
li = li1 + li2
#t2,列表生成器
li = [i for i in range(10000)]
#t3,將可迭代對象(range)直接轉換成列表
li = list(range(10000))
#t4,先創(chuàng)建一個空列表,然后用.append方法添加元素
li = []
for i in range(10000):
li.append(i)
'''
#下面開始測算
#append方法對空列表添加元素構造列表
def t1():
li = []
for i in range(10000):
li.append(i)
#+的方法構造列表
def t2():
li = []
for i in range(10000):
li += [i]
#列表生成器
def t3():
li = [i for i in range(10000)]
#轉換可迭代對象為列表
def t4():
li = list(range(10000))
timer1 = timeit.Timer('t1()','from __main__ import t1')
print('+:',timer1.timeit(1000))
timer2 = timeit.Timer('t2()','from __main__ import t2')
print('append:',timer2.timeit(1000))
timer3 = timeit.Timer('t3()','from __main__ import t3')
print('列表生成器:',timer3.timeit(1000))
timer4 = timeit.Timer('t4','from __main__ import t4')
print('直接轉換可迭代對象:',timer4.timeit(1000))
4.運行結果
+: 0.7415732243125414
append: 0.7872105163322995
列表生成器: 0.3843147415048551
直接轉換可迭代對象: 1.3879485965428984e-05
[Finished in 2.0s]
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
python實現(xiàn)帶聲音的摩斯碼翻譯實現(xiàn)方法
這篇文章主要介紹了python實現(xiàn)帶聲音的摩斯碼翻譯實現(xiàn)方法,涉及pygame模塊操作及摩斯碼實現(xiàn)技巧,需要的朋友可以參考下2015-05-05
python3 循環(huán)讀取excel文件并寫入json操作
這篇文章主要介紹了python3 循環(huán)讀取excel文件并寫入json操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07

