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 に答える