Skip to main content
 首页 » 编程设计

python之'not'在python语句中的位置对性能的影响

2025年05月04日13cmt

在我目前用python3开发的应用程序中,我经常使用这样的语句

elem_in_list = elem in list 

但有时我需要检查元素是否不在列表中。 之间是否存在性能差异

elem_not_in_list = not elem in list 

和

elem_not_in_list = elem not in list 

还是一样?其中一种表示法更可取吗?

请您参考如下方法:

这些表达式编译成完全相同的字节码,因此它们的效率完全相同。 not in 往往更具可读性,但这是一个见仁见智的问题。

>>> import dis 
>>> def f(x, y): 
...     return not x in y 
... 
>>> def g(x, y): 
...     return x not in y 
... 
>>> dis.dis(f) 
  2           0 LOAD_FAST                0 (x) 
              3 LOAD_FAST                1 (y) 
              6 COMPARE_OP               7 (not in) 
              9 RETURN_VALUE 
>>> dis.dis(g) 
  2           0 LOAD_FAST                0 (x) 
              3 LOAD_FAST                1 (y) 
              6 COMPARE_OP               7 (not in) 
              9 RETURN_VALUE