我尝试使用timeit和time.clock(),但我的电脑速度不一致,我找不到哪个更快,如果这个问题已经存在,那么我道歉但我找不到它。
答案 0 :(得分:2)
最简单的方法是实际计时,使用python 2.7 not 5 % 2
的速度一直稍快:
In [1]: timeit 5 % 2== 0
10000000 loops, best of 3: 25.6 ns per loop
In [2]: timeit not 5 % 2
10000000 loops, best of 3: 24.5 ns per loop
使用按位和:
In [7]: timeit not 5 & 1
100000000 loops, best of 3: 19 ns per loop
In [8]: timeit 5 & 1 == 0
10000000 loops, best of 3: 30.1 ns per loop
答案 1 :(得分:1)
通过检查数字的最低有效位,可以快速执行测试%2
(即奇数/均匀度)。 (使用逻辑AND执行此操作:(n & 1)
)。你很难击败它。
但任何潜在的性能提升都可能在Python中被削弱,因此如果只是在您的判断中,性能增益超过了表达式的混淆效果,那么在C和C ++中可能很难陌生与你合作的人。
答案 2 :(得分:0)
我相信第二个版本(not 5 % 2
)更快,因为一元not运算符比比较运算更快。