假设有一个像这样的字符串:
my_line = 'this is a line of text\n'
并希望检查单词的缺席,例如单词'row'
。
使用之间有什么区别:
a)if not 'row' in my_line:
和
b)if 'row' not in my_line:
在这种情况下两者完全相同吗?是否存在两个分歧的情况?
答案 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