(2,3,(‘aa’,’ab’)) < (2,3,(‘abc’,’a’),5) これはなぜTRUEになる

Pythonにおいて、タプル同士の比較は辞書式順序で行われます。比較は各要素を順番に比較していき、最初に異なる要素が見つかった時点でその比較結果が全体の比較結果となります。タプルの中にタプルが含まれている場合は、その中のタプルの比較も再帰的に行われます。

それでは、与えられた式を詳しく見ていきましょう。

  1. 最初の要素 2 を比較します。両方のタプルで等しいため、次の要素を比較します。
  2. 次の要素 3 も等しいため、次の要素を比較します。
  3. 3番目の要素はそれぞれタプルです。最初のタプル (2,3,('aa','ab')) の3番目の要素は ('aa','ab') で、2番目のタプル (2,3,('abc','a'),5) の3番目の要素は ('abc','a') です。
  4. それぞれのタプル内の文字列要素を辞書式順序で比較します。
    • 'aa''abc' を比較します。'a''b' よりも辞書式順序で前に来るため、(2,3,('aa','ab')) の方が小さいと評価されます。
  5. タプルの比較が行われた後には、5番目の要素の比較は行われません。因みに、もし5番目の要素の比較が行われた場合、 (2,3,('aa','ab'))(2,3,('abc','a'),5) よりも小さくなります。

以上の理由から、(2,3,('aa','ab')) < (2,3,('abc','a'),5)True になります。

未分類

Posted by ぼっち