如何测量Python的关系比较效率



我正在处理代码战的一些计算机科学问题,然后我发现了这个问题,首先,我不明白为什么第一种方法被视为这种情况下的最佳实现。

有人可以为我提供有关如何衡量Python的关系比较编码效率的指导?

您想编写一个函数,该函数采用整数数字x,y,l r作为参数,如果XY位于间隔(L,R] 否则为错误。您正在考虑几种写作的方法 此功能中的条件语句:

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

用于微型片段的小摘要,查看timeit模块。

对于记录,我强烈怀疑return L < x ** y <= R将是最有效的解决方案。它仅计算x ** y一次,短路,并且不构造其他对象。它还直接使用测试的结果,而不是使用if检查明确的return Truereturn False。如果您需要选择,等效的if检查将是最快的。range的测试在理论上同样快,但是即使在PY 3中构建range对象也将具有更高的固定成本,而固定成本也无法弥补。