在Python中,'e in c'与'e not in c'不同吗?

sza*_*ica 19 python

可能重复:
使用"not"和"in"关键字的语法顺序

我的TA声称e not in c并不总是产生相同的结果not e in c(他并没有给出解释,为什么虽然).我从来没有亲自在任何人的代码中亲眼看到第二种形式(除了他和书籍解释说这两种形式相同的)并且从未见过两者在行为上有所不同所以我对这种说法持怀疑态度.没有通过谷歌找到任何东西我决定来这里.

那么,任何人都有任何关于两者行为不同的情况的信息吗?

Ash*_*ary 26

它们完全相同,因为两者都实际应用了not in比较:

In [25]: def func():
    'e' not in 'bee'
   ....:     
   ....:     

In [27]: def func1():
    not 'e' in 'bee'
   ....:     
   ....:     
In [29]: dis.dis(func)
  2           0 LOAD_CONST               1 ('e')
              3 LOAD_CONST               2 ('bee')
              6 COMPARE_OP               7 (not in)
              9 POP_TOP             
             10 LOAD_CONST               0 (None)
             13 RETURN_VALUE        

In [30]: dis.dis(func1)
  2           0 LOAD_CONST               1 ('e')
              3 LOAD_CONST               2 ('bee')
              6 COMPARE_OP               7 (not in)
              9 POP_TOP             
             10 LOAD_CONST               0 (None)
             13 RETURN_VALUE  
Run Code Online (Sandbox Code Playgroud)

  • @JanusTroelsen两个,实际上 - 在3,你会得到完全相同的outpout. (6认同)