我想检查一下给定的是否在x这段时间内[0,a-1].作为一个懒惰的程序员,我写道
x in range(a)
Run Code Online (Sandbox Code Playgroud)
(因为那段代码在4.5嵌套循环中)很快就会遇到性能问题.我测试了它,事实上,它证明了n in range(n)O(n)中的谎言的运行时间,给予或接受.我实际上认为我的代码会被优化,x >= 0 and x < a但似乎并非如此.即使我range(a)事先修好了,时间也不会变得不变(虽然它会有很大改善) - 请参阅附注.
我应该使用x >= 0 and x < a而且永远不要再写x in range(a)了吗?有没有更好的写作方式?
附注:
如果我尝试以下:
i = range(a)
...
x in i
Run Code Online (Sandbox Code Playgroud)
所以范围是固定的,我只测量运行时间x in i,我仍然在O(x)中得到运行时(假设a足够大).
n in xrange(n)O(n)中的运行时间也是如此.