gpt4 book ai didi

python - "x not in"与 "not x in"

转载 作者:IT老高 更新时间:2023-10-28 20:30:49 27 4
gpt4 key购买 nike

我注意到这两者的工作方式相同:

如果 x 不在列表中如果 x 不在列表中

在某些情况下,两者之间有什么区别吗?两者兼而有之是有原因的,还是仅仅是因为某些人写其中一个更自然?

我更有可能在其他人的代码中看到哪一个?

最佳答案

这两种形式的字节码完全相同,您可以清楚地验证:

>>> import dis
>>> dis.dis(compile('if x not in d: pass', '', 'exec'))
1 0 LOAD_NAME 0 (x)
3 LOAD_NAME 1 (d)
6 COMPARE_OP 7 (not in)
9 JUMP_IF_FALSE 4 (to 16)
12 POP_TOP
13 JUMP_FORWARD 1 (to 17)
>> 16 POP_TOP
>> 17 LOAD_CONST 0 (None)
20 RETURN_VALUE
>>> dis.dis(compile('if not x in d: pass', '', 'exec'))
1 0 LOAD_NAME 0 (x)
3 LOAD_NAME 1 (d)
6 COMPARE_OP 7 (not in)
9 JUMP_IF_FALSE 4 (to 16)
12 POP_TOP
13 JUMP_FORWARD 1 (to 17)
>> 16 POP_TOP
>> 17 LOAD_CONST 0 (None)
20 RETURN_VALUE

显然它们在语义上是相同的。

就风格而言,PEP 8没有提到这个问题。

就我个人而言,我更喜欢 if x not in y 形式——这清楚地表明 not in 是单个运算符,and“读起来像英语”。 if not x in y 可能会误导一些读者认为它的意思是 if (not x) in y,读起来有点不像英文,而且绝对没有任何补偿优势。

关于python - "x not in"与 "not x in",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3481554/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com