我刚开始学习 Python,在解释器中使用 in 运算符时发现了一些有趣的东西。为什么这是 False:
# case 1
>>> [1] in [1,2,3]
False
但是这些是True?
# case 2
>>> [1] in [[1],2,3]
True
# case 3
>>> (1) in [(1),2,3]
True
# case 4
>>> (1) in [1,2,3]
True
# case 5
>>> 1 in [(1),2,3]
True
我能理解为什么 #1 是 False,因为 [1] 是一个列表对象,它没有出现在列表 [1,2, 3]。我也明白为什么 #2 是 True。然而,如果元组是不可变的列表(正如 Norm Matloff 在他的 tutorial 中描述的那样)或者是不可变的序列(如元组的 Python 文档所说),为什么 (1) 等同于 1 而不是 [1]?
请您参考如下方法:
方括号不能组成元组,逗号可以。
>>> (1)
1
>>> (1,)
(1,)
所以当你执行 (1) 时,它实际上只是意味着 1。
>>> (1,) in [1,2,3]
False
