Ric*_*ann 1 python list boolean-operations
在我目前正在使用python3开发的应用程序中,我经常使用类似的语句
elem_in_list = elem in list
Run Code Online (Sandbox Code Playgroud)
但有时我需要检查元素是否不在列表中.是否有性能差异
elem_not_in_list = not elem in list
Run Code Online (Sandbox Code Playgroud)
和
elem_not_in_list = elem not in list
Run Code Online (Sandbox Code Playgroud)
还是一样的?其中一个符号更可取吗?
use*_*ica 13
这些表达式编译为完全相同的字节码,因此它们的效率完全相同.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
Run Code Online (Sandbox Code Playgroud)