timeit用法(不完整)

从下面的测算结果可以看出

列表生成器所花时间最少,
+方法和append()方法所花时间差不多,
转化为列表可迭代对象所花时间最多

有两种测试所花时间的语法,但效果不一样,不知道为啥;这里我弄错了,第一项参数应该填的是表达式,而我在第二种方法种填了对象。所以导致所花时间不一样

这下面都是无参的函数,有参的函数,传递进去,测试出来执行该函数的时间如何测试呢


第一种

timer1 = timeit.Timer('t1()','from __main__ import t1')
print('+:',timer1.timeit(1000)) # 0.7281594

第二种(错误);第一个参数表达式,第二个参数导入表达式之类的,第三个参数执行1000次次数然后返回平均时间

print('第二种用法不需要赋值给对象',timeit.timeit('t1','from __main__ import t1',number=100)) #  1.600000000046009e-06

正确的第二种

print('第二种用法不需要赋值给对象',timeit.timeit('t1()','from __main__ import t1',number=1000))  # 0.71266100000000016

完整代码

import timeit

#下面开始测算
 
#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)) # 0.7281594
print('第二种用法不需要赋值给对象',timeit.timeit('t1','from __main__ import t1',number=100)) #  1.600000000046009e-06

timer2 = timeit.Timer('t2()','from __main__ import t2')
print('append:',timer2.timeit(1000)) #  0.7138903
 
timer3 = timeit.Timer('t3()','from __main__ import t3')
print('列表生成器:',timer3.timeit(1000)) #  0.30057730000000005
 
timer4 = timeit.Timer('t4','from __main__ import t4')
print(timer4) # <timeit.Timer object at 0x000002A2CF6071D0>
# 1.2399999999912481e-05
print('直接转换可迭代对象:',timer4.timeit(1000)) #1000表示该语句执行的次数,然后返回平均一次执行所需要的时间


posted @ 2021-10-01 12:02  索匣  阅读(179)  评论(0编辑  收藏  举报