"in"运算符的优先级是什么?



今天我在这个Python程序中遇到了一个困难的情况:

a = [False, True]
x = True in a in a
y = True in a in [a]
z = True in a in (a)
print(x, y, z)

该代码的输出是

False True False

这怎么可能?

让我们在这里测试x

x = True in a in a

True in [False, True]True并且True in [False, True]再次是True

所以x应该是True。但当我运行程序时,它显示False

现在让我们从右到左:

x = True in a in a

[False, True] in [False, True]False,所以现在True in False可能是类型错误或其他错误。

你能解释一下吗?

Python链接某些运算符,包括in

此:

True in a in [a]

(True in a) and (a in [a])

因此如果a等于[False,True],则该表达式为真。


其他版本:

True in a in a
True in a in (a)

彼此相等。在(a)周围加括号不会改变其类型或值。

两者都意味着(True in a) and (a in a),所以除非a包含它自己,否则它们都是假的。

最新更新