为什么这段代码中的 x in x 会产生 false?
x = [1,2,3,8,9,12]
print(x in x)
给我输出: 错误
这不应该是真的吗?
请您参考如下方法:
您检查作为数字列表的 x 是否在其内部。 你可以清楚地说它错了,因为列表不包含它自己。
你可以把它想象成一个盒子,盒子包含值,在本例中是一些数字,1,2,3,8,9,12,当你使用关键字 in你问盒子里有没有东西,正如你所见,盒子里没有盒子,因为这里只有数字,盒子里现在只有 1,2,3,8,9,12。
盒子很大,可以放任何你想放的东西,甚至其他盒子,例如:
x = [1,2,3]
y = [4,5,6]
x.append(y)
print(y in x) # True
它可以存储你想要的任何东西,但如果它不在盒子里,语句in 将是错误的
如果你有兴趣阅读更多关于它是如何工作的,你可以阅读 this关于它的部分(您很可能对 __contains__
如果你想让它为真,你可以执行 x.append(x) 然后让它为真
