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表示该语句执行的次数,然后返回平均一次执行所需要的时间
努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。