今天我在这个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
包含它自己,否则它们都是假的。