使用求幂** 0.5比math.sqrt效率低吗?

使用求幂** 0.5比math.sqrt效率低吗?,第1张

使用求幂** 0.5比math.sqrt效率低吗?

从理论上讲,hammar的答案和duffymo的答案是很好的猜测。但在实践中,我的机器上,这是 不是 更有效:

>>> import timeit>>> timeit.timeit(stmt='[n ** 0.5 for n in range(100)]', setup='import math', number=10000)0.15518403053283691>>> timeit.timeit(stmt='[math.sqrt(n) for n in range(100)]', setup='import math', number=10000)0.17707490921020508

问题的一部分是

.
*** 作。如果
sqrt
直接导入到名称空间中,则可以得到一些改进。

>>> timeit.timeit(stmt='[sqrt(n) for n in range(100)]', setup='from math import sqrt', number=10000)0.15312695503234863

那里的关键字: 轻微

进一步的测试表明,随着数量的增加,您从使用中获得的收益

sqrt
也会增加。但是仍然不是很多!

>>> timeit.timeit(stmt='[n ** 0.5 for n in range(1000000)]', setup='import math', number=1)0.18888211250305176>>> timeit.timeit(stmt='[math.sqrt(n) for n in range(1000000)]', setup='import math', number=1)0.18425297737121582>>> timeit.timeit(stmt='[sqrt(n) for n in range(1000000)]', setup='from math import sqrt', number=1)0.1571958065032959


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5668621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存