比較演算子って、タプル内の要素数はことなってもいいの?

Pythonの比較演算子は、比較する対象の型が異なっていても、比較を行おうとします。しかし、比較が行えない型同士を比較しようとすると、TypeErrorが発生します。

タプル内の要素数が異なる場合、Pythonはそれぞれのタプルの対応する位置の要素を順番に比較し、一致する要素が見つかるか、どちらかのタプルの要素がなくなるまで比較を続けます。要素数が異なる場合でも、要素が同じであればタプル同士は等しいとみなされます。

例えば、次の比較はどちらもTrueになります:

python
(1, 2, 3) == (1, 2, 3, 4)
python
(1, 2, 3) < (1, 2, 3, 4)

最初の比較では、左側のタプルの要素数は3で、右側のタプルの要素数は4ですが、要素が一致しているためTrueになります。二番目の比較では、両方のタプルの最初の3つの要素が一致しているため、左側のタプルが短いためTrueになります。

しかし、次のような比較ではエラーが発生します:

python
(1, 2, 3) < (1, 2)

これは要素数が異なるため、比較できないためです。

未分類

Posted by ぼっち