1

我刚刚开始学习 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 在他的教程中描述的那样)或者是不可变的序列(如 TUPLES 的 Python 文档所述),为什么(1)等同于1而不是[1]

4

1 回答 1

7

括号不构成元组,逗号可以。

>>> (1)
1
>>> (1,)
(1,)

所以你在哪里(1),它实际上只是意味着1

>>> (1,) in [1,2,3]
False
于 2012-04-05T23:11:29.617 回答