如何衡量Python中的关系比较效率?

时间:2017-09-03 01:41:21

标签: python algorithm structure

我正在处理CodeFights上的一些计算机科学问题然后我发现了这个问题,起初我无法理解为什么第一种方法被认为是这种情境的最佳实现。

有人可以就如何衡量Python中的关系比较编码效率给我指导吗?

  

您想编写一个带整数x,y,L的函数   和R作为参数,如果xy位于区间(L,R),则返回True   否则就是假的。你正在考虑几种写作方法   此函数内的条件语句:

if L < x ** y <= R:
if x ** y > L and x ** y <= R:
if x ** y in range(L + 1, R + 1):

1 个答案:

答案 0 :(得分:1)

对于小型基座的微基准测试,请查看the timeit module

为了记录,我强烈怀疑return L < x ** y <= R将是最有效的解决方案;它只计算x ** y一次,短路,并且不构造其他对象。它还直接使用测试结果,而不是使用控制显式ifreturn True的{​​{1}}检查。如果您必须选择,等效的return False检查将是最快的; if测试在理论上同样快,但构建range对象,即使在Py 3中,也会有很高的固定成本,而收容测试无法弥补。