重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
python对列表计时的方法:
10余年的包河网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整包河建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“包河网站设计”,“包河网站推广”以来,每个客户项目都认真落实执行。
使用“import”语句导入time包,在列表操作之前用time.time函数获取当前时间,在列表操作之后,再用time.time获取当前时间,用第二次的时间减去第一次的时间就可以了
示例如下:
执行结果如下:
更多Python知识,请关注:Python自学网!!
timeit
通常在一段程序的前后都用上time.time(),然后进行相减就可以得到一段程序的运行时间,不过python提供了更强大的计时库:timeit
#导入timeit.timeitfrom timeit import timeit
#看执行1000000次x=1的时间:timeit('x=1')#看x=1的执行时间,执行1次(number可以省略,默认值为1000000):timeit('x=1', number=1)#看一个列表生成器的执行时间,执行1次:timeit('[i for i in range(10000)]', number=1)#看一个列表生成器的执行时间,执行10000次:timeit('[i for i in range(100) if i%2==0]', number=10000)
测试一个函数的执行时间:
from timeit import timeitdef func():
s = 0
for i in range(1000):
s += i print(s)# timeit(函数名_字符串,运行环境_字符串,number=运行次数)t = timeit('func()', 'from __main__ import func', number=1000)print(t)
此程序测试函数运行1000次的执行时间
repeat:
由于电脑永远都有其他程序也在占用着资源,你的程序不可能最高效的执行。所以一般都会进行多次试验,取最少的执行时间为真正的执行时间。
from timeit import repeatdef func():
s = 0
for i in range(1000):
s += i#repeat和timeit用法相似,多了一个repeat参数,表示重复测试的次数(可以不写,默认值为3.),返回值为一个时间的列表。t = repeat('func()', 'from __main__ import func', number=100, repeat=5)print(t)
print(min(t))
用python实现计时器功能,代码如下:
''' Simple Timing Function.
This function prints out a message with the elapsed time from the
previous call. It works with most Python 2.x platforms. The function
uses a simple trick to store a persistent variable (clock) without
using a global variable.
'''
import time
def dur( op=None, clock=[time.time()] ):
if op != None:
duration = time.time() - clock[0]
print '%s finished. Duration %.6f seconds.' % (op, duration)
clock[0] = time.time()
# Example
if __name__ == '__main__':
import array
dur() # Initialise the timing clock
opt1 = array.array('H')
for i in range(1000):
for n in range(1000):
opt1.append(n)
dur('Array from append')
opt2 = array.array('H')
seq = range(1000)
for i in range(1000):
opt2.extend(seq)
dur('Array from list extend')
opt3 = array.array('H')
seq = array.array('H', range(1000))
for i in range(1000):
opt3.extend(seq)
dur('Array from array extend')
# Output:
# Array from append finished. Duration 0.175320 seconds.
# Array from list extend finished. Duration 0.068974 seconds.
# Array from array extend finished. Duration 0.001394 seconds.
定义在默认的计时器中,针对不同平台采用不同方式。在Windows上,time.clock()具有微秒精度,但是time.time()精度是1/60s。在Unix上,time.clock()有1/100s精度,而且time.time()精度远远更高。在另外的平台上,default_timer()测量的是墙上时钟时间,不是CPU时间。这意味着同一计算机的其他进程可能影响计时
版权声明:
def clock(func):
def clocked(*args, **kwargs):
t0 = timeit.default_timer()
result = func(*args, **kwargs)
elapsed = timeit.default_timer() - t0
name = func.__name__
arg_str = ', '.join(repr(arg) for arg in args)
print('[%0.8fs] %s(%s) - %r' % (elapsed, name, arg_str, result))
return result
return clocked
@clock
def run(seconds):
time.sleep(seconds)
return time
if __name__ == '__main__':
run(1)
本文为CSDN博主「FlyingPie」的原创文章,遵循CC 4.0 BY-SA版权协议,附上原文出处链接及声明。
原文链接:
参考资料:CSDN。