2024-04-24 10:18:58 发布
网友
我想计算一下“砰”的时间。 这是密码。在
x=list(range(10000)) popz=timeit.Timer("x.pop(0)","from __main__ import x") print (popz.timeit()) IndexError: pop from empty list
我怎样才能从列表的开头得到流行音乐的时间呢。在
就这样试试吧
>>> import timeit >>> x=list(range(10000)) >>> timeit.timeit("x.pop(0)","from __main__ import x", number=len(x)) 0.01635134604293853
默认情况下,^{} method运行一百万次。然而,你的单子只有10000条。因此,当timeit运行时,第一个10000次将愉快地弹出,但是{}迭代将失败。可以显式设置次数:
timeit
10000
popz.timeit(n=10000)
但是。。。这是一个非常棘手的计时情况,因为您希望计算出.pop所需的时间,但是列表的大小是不断变化的。如果您正在寻找渐近性能,您可能可以验证.pop(0)具有O(N)的渐近性能。然而,具体的时间将很难到来,因为您要么需要计算创建列表所需的时间量,要么与.pop、或一起计时,您的列表会不断变化。这两个都不理想。。。但我想这就是试图对非幂等方法计时的问题。。。在
.pop
.pop(0)
也许你可以尝试在pop之前和之后定义的两个变量(datetime)之间使用不同的值。在
我不确定,但可能是这样) 但有一个错误,它等于第二个变量赋值的时间(在“pop”之后)。在
import datetime a = datetime.datetime.now() # ...wait a while... b = datetime.datetime.now() print(b-a)
嗯,我不确定这个例子中时间增量的准确性。在
就这样试试吧
默认情况下,^{} method 运行一百万次。然而,你的单子只有10000条。因此,当}迭代将失败。可以显式设置次数:
timeit
运行时,第一个10000
次将愉快地弹出,但是{但是。。。这是一个非常棘手的计时情况,因为您希望计算出
.pop
所需的时间,但是列表的大小是不断变化的。如果您正在寻找渐近性能,您可能可以验证.pop(0)
具有O(N)的渐近性能。然而,具体的时间将很难到来,因为您要么需要计算创建列表所需的时间量,要么与.pop
、或一起计时,您的列表会不断变化。这两个都不理想。。。但我想这就是试图对非幂等方法计时的问题。。。在也许你可以尝试在pop之前和之后定义的两个变量(datetime)之间使用不同的值。在
我不确定,但可能是这样) 但有一个错误,它等于第二个变量赋值的时间(在“pop”之后)。在
嗯,我不确定这个例子中时间增量的准确性。在
相关问题 更多 >
编程相关推荐