Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么这不能作为阵列成员资格测试?_Python_Python 2.7_Python 3.x - Fatal编程技术网

Python 为什么这不能作为阵列成员资格测试?

Python 为什么这不能作为阵列成员资格测试?,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我知道这是一种奇怪的测试会员资格的方法,而且 >>> 5 in [1, 2, 3, 4] == False False 这是正确的方法。让我困惑的是,它的行为与两者不同 >>> 5 not in [1, 2, 3, 4] True 及 我错过了什么明显的东西吗?在Python2.7和Python3.4中测试 为了澄清,我理解了最后三个片段。我问的是第一个代码片段的行为,以及为什么它不同。这是一个链式比较。你可能知道你能做到 >>> 5 i

我知道这是一种奇怪的测试会员资格的方法,而且

>>> 5 in [1, 2, 3, 4] == False
False
这是正确的方法。让我困惑的是,它的行为与两者不同

>>> 5 not in [1, 2, 3, 4]
True

我错过了什么明显的东西吗?在Python2.7和Python3.4中测试


为了澄清,我理解了最后三个片段。我问的是第一个代码片段的行为,以及为什么它不同。

这是一个链式比较。你可能知道你能做到

>>> 5 in ([1, 2, 3, 4] == False)
TypeError ...
相当于

5 in [1, 2, 3, 4] == False

因为[1,2,3,4]不等于False,所以整个表达式的计算结果为False。

这肯定是一个dupe,但我找不到合适的dupe候选者。好的。。。那么你怎么知道这是个骗局呢?@user2357112-似乎很接近。@user2357112-找到了一个好的。@TigerhawkT3:这个问题是个骗局,但这个问题的答案很糟糕。没人能解释什么,太棒了!我知道链式比较;我没意识到他们在申请工作。回答得好!这是一个如此普通的故事。实际上,我试着进入,而不是作为文档,因为它们在中被字面上定义为比较,但在bug上没有得到太多支持。python.orgI也在考虑将缺少文档作为bug报告;我想这是一个失败的事业。知道为什么它是比较运算符吗?我想不出这种行为有什么用处。@IanKuehne:我猜实现将它们与其他比较运算符结合在一起是很方便的,而且它们并不太关心链接行为。
1 < 2 < 3
5 in [1, 2, 3, 4] == False
(5 in [1, 2, 3, 4]) and ([1, 2, 3, 4] == False)