Python 大小等于比较效率

12>=12 # 44.3 ns
12>12 # 44.4 ns
12!=12 # 44.4 ns
12==12 # 44.4 ns
12<=13 # 46.8 ns
12<13 # 46.8 ns
10!=12 # 47.4 ns
12>=10 # 47.5 ns
12>=13 # 47.6 ns
10<=11 # 47.7 ns
10<=12 # 47.7 ns
12==13 # 47.7 ns
12>10 # 47.7 ns
10<12 # 47.8 ns
10==12 # 48.4 ns
10<11 # 48.5 ns

有时候我想,有必要啊,但是觉得有必要,因为明显的差距的大,肯定有其内部原因,推测内部的处理方法,也是编程的一部分。而且大佬级别的算法值得参考。

效率:
相同数值 > 不同数值
不同数值的非等于>不同数值的等于

相同数值好了解,只要判断符号包括=,就是True,反之False
不同数值,只包括=,就是True,不只包括=和不包括=,都需要再判断,但是需要判断的反而效率高一点,说明他是先处理的判断,再看比较符号是哪种类型,而只=,放在了最后处理。

if a == b:
	if '=' in sign:True
	else:False
elif a > b:
	if '>' in sign:True
	else:False
else:
	if '<' in sign:True
	else:False

目前推测是这样的,那么去验证一下。

12>=13 # 46.8 ns F
12>13 # 46.8 ns F
12!=13 # 46.9 ns T
12<=13 # 46.9 ns T
12<13 # 47.7 ns T
12==13 # 47.8 ns F

两个大于号,反而最快得出,结果是False的
不等于
小于等于

以上差不多都是一个时段得出来的结果,有True,有False
而确定为真的小于,和确定为假的等于,都是最后得出的

推测:
流程1,判断两个数的大小
流程2,判断符号

可能是F的少,于是先判断F,剩下的一股脑丢给T

12>11 # 46.7 ns T
12<11 # 46.8 ns F
12<=11 # 46.8 ns F
12>=11 # 47 ns	T
12!=11 # 47 ns T	
12==11 # 47.6 ns F

至少或仅能确定,是吧==放在最后处理了
虽然几乎没什么意义,我确定自己需要养成尽可能不用==的习惯

上一篇:数组汇总0425


下一篇:Linux进程pid分配法【转】