不是'字符串'在线.vs。 '串'不符合

时间:2017-04-03 09:27:22

标签: python

假设有一个像这样的字符串:

my_line = 'this is a line of text\n'

并希望检查单词的缺席,例如单词'row'

使用之间有什么区别:

a)if not 'row' in my_line:

b)if 'row' not in my_line:

在这种情况下两者完全相同吗?是否存在两个分歧的情况?

1 个答案:

答案 0 :(得分:2)

它们是相同的,您可以从dis CPython字节码输出中看到:

>>> import dis
>>> def f1():                              
...     if not 'row' in my_line: pass
... 
>>> def f2(): 
...     if 'row' not in my_line: pass
... 
>>> dis.dis(f1)
  2           0 LOAD_CONST               1 ('row')
              2 LOAD_GLOBAL              0 (my_line)
              4 COMPARE_OP               7 (not in)
              6 POP_JUMP_IF_FALSE        8
        >>    8 LOAD_CONST               0 (None)
             10 RETURN_VALUE
>>> dis.dis(f2)
  2           0 LOAD_CONST               1 ('row')
              2 LOAD_GLOBAL              0 (my_line)
              4 COMPARE_OP               7 (not in)
              6 POP_JUMP_IF_FALSE        8
        >>    8 LOAD_CONST               0 (None)
             10 RETURN_VALUE