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