溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

時(shí)間測量模塊timeit的用法是什么

發(fā)布時(shí)間:2020-07-01 15:58:49 來源:億速云 閱讀:216 作者:清晨 欄目:開發(fā)技術(shù)

小編給大家分享一下時(shí)間測量模塊timeit的用法是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!

1.timeit模塊

timeit模塊可以用來測試一小段python代碼的執(zhí)行速度

class timeit.Timer(stmt = 'pass',setup = 'pass',timer=<timer function>)

  • Timer是測量小段代碼執(zhí)行速度的類
  • stmt參數(shù)是要測試的代碼語句(statment);
  • setup參數(shù)是運(yùn)行代碼時(shí)需要的設(shè)置;
  • timer參數(shù)是一個(gè)定時(shí)器函數(shù),與平臺(tái)有關(guān)(windows,unix,linux,mac)。

timeit.timer(number = 10000)

Timer類中測試語句執(zhí)行速度的對(duì)象方法。number參數(shù)是測試代碼時(shí)的測試次數(shù),默認(rèn)為1000000(一百萬)次。
該方法返回執(zhí)行代碼的平均耗時(shí),是一個(gè)float類型的seconds。

2.使用timeit模塊對(duì)python中l(wèi)ist內(nèi)置操作的時(shí)間復(fù)雜度測算

時(shí)間測量模塊timeit的用法是什么
時(shí)間測量模塊timeit的用法是什么

3.測算代碼塊:

#下面列出list的幾種常用內(nèi)置方法以及l(fā)ist的幾種構(gòu)建方法
	
#coding:utf-8
 
#導(dǎo)入timeit模塊
 
import timeit
 
#t1,以+的方式構(gòu)建列表
 
'''
	li1 = [1,2]
 
	li2 = [23,24]
 
	li = li1 + li2
 
	#t2,列表生成器
 
	li = [i for i in range(10000)]
 
	#t3,將可迭代對(duì)象(range)直接轉(zhuǎn)換成列表
 
	li = list(range(10000))
 
	#t4,先創(chuàng)建一個(gè)空列表,然后用.append方法添加元素
 
	li = []
 
	for i in range(10000):
		li.append(i)
'''
#下面開始測算
 
#append方法對(duì)空列表添加元素構(gòu)造列表
def t1():
	li = []
	for i in range(10000):
		li.append(i)
#+的方法構(gòu)造列表
def t2():
	li = []
	for i in range(10000):
		li += [i]
#列表生成器
def t3():
	li = [i for i in range(10000)]
#轉(zhuǎn)換可迭代對(duì)象為列表
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('直接轉(zhuǎn)換可迭代對(duì)象:',timer4.timeit(1000))

4.運(yùn)行結(jié)果

+: 0.7415732243125414
append: 0.7872105163322995
列表生成器: 0.3843147415048551
直接轉(zhuǎn)換可迭代對(duì)象: 1.3879485965428984e-05
[Finished in 2.0s]

看完了這篇文章,相信你對(duì)時(shí)間測量模塊timeit的用法是什么有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI