Which is faster? if not x in OR if x not in
本问题已经有最佳答案,请猛点这里访问。
1 2 3 4 5 | if not 7 in [5, 6, 7]: # something if 7 not in [5, 6, 7]: # something |
哪个更快?
它们完全相同,因此需要相同的时间。
1 2 3 4 5 6 7 8 9 10 | >>> dis.dis("not x in y") 1 0 LOAD_NAME 0 (x) 2 LOAD_NAME 1 (y) 4 COMPARE_OP 7 (not in) 6 RETURN_VALUE >>> dis.dis("x not in y") 1 0 LOAD_NAME 0 (x) 2 LOAD_NAME 1 (y) 4 COMPARE_OP 7 (not in) 6 RETURN_VALUE |
即使将括号添加为
1 2 3 4 5 6 7 8 9 10 11 12 13 | >>> dis.dis("not (x in y)") 1 0 LOAD_NAME 0 (x) 2 LOAD_NAME 1 (y) 4 COMPARE_OP 7 (not in) 6 RETURN_VALUE >>> dis.dis("not (x in y or z)") 1 0 LOAD_NAME 0 (x) 2 LOAD_NAME 1 (y) 4 COMPARE_OP 6 (in) 6 JUMP_IF_TRUE_OR_POP 10 8 LOAD_NAME 2 (z) >> 10 UNARY_NOT 12 RETURN_VALUE |
使用Python 3.6.7和2.7.15进行测试。
它完全一样,没有任何区别。 标准运算符实际上是
所以推荐的方法是