以下代码为何起作用?在“ t”对象中,timeit
已被调用。通过在timeit
和lst_time
上调用d_time
是不是在timeit
上调用timeit
(因为定义了lst_time
和d_time
就“ t”和timeit
而言,它们已经在t上被调用了)。在逻辑上允许为什么/如何在自身上调用timeit
?
import timeit
import random
for i in range(10000,1000001,20000):
t = timeit.Timer("random.randrange(%d) in x"%i,
"from __main__ import random,x")
x = list(range(i))
lst_time = t.timeit(number=1000)
x = {j:None for j in range(i)}
d_time = t.timeit(number=1000)
print("%d,%10.3f,%10.3f" % (i, lst_time, d_time))
答案 0 :(得分:0)
这不是问题,我将解释代码的工作原理:
t = timeit.Timer()
timeit.Timer-这将创建一个计时器,以后可以使用
lst_time = t.timeit(number=1000)
#Task 1
d_time = t.timeit(number=1000)
#Task 2
调用t.timeit然后启动计时器