1. ホーム
  2. パイソン

[解決済み】Pythonでタプル比較はどのように動作するのですか?

2022-04-10 18:48:16

質問

を読んでいます。 Pythonのコア プログラミングの本で、著者はこんな例を示しています。

(4, 5) < (3, 5) # Equals false

そこで疑問なのですが、どのように/なぜ false になるのでしょうか?pythonはこの2つのタプルをどのように比較するのでしょうか?

乙、本では説明されていない。

どのように解決するのですか?

タプルは位置ごとに比較されます。 最初のタプルの最初の項目と2番目のタプルの最初の項目が比較され、それらが等しくない場合(つまり、最初の項目が2番目より大きいか小さい)、それが比較の結果となり、さもなければ2番目の項目が検討され、次に3番目と続きます。

参照 一般的な配列の操作 :

同じ型の配列は比較もサポートしています。特に、タプルとリストは、対応する要素を比較することにより、辞書式に比較されます。つまり、等しい比較を行うには、すべての要素を等しく比較しなければならず、2つのシーケンスは同じタイプで同じ長さでなければなりません。

また 数値の比較 をご覧ください。

ビルトイン・コレクション間の字句比較は次のように動作します。

  • 2つのコレクションが等しく比較されるためには、それらは同じ型であり、同じ長さであり、対応する要素の各ペアが等しく比較されなければならない(例. [1,2] == (1,2) は型が違うので偽です)。
  • 順序比較をサポートするコレクションは、その最初の不等間隔の要素と同じ順序になります(例. [1,2,x] <= [1,2,y] と同じ値を持ちます。 x <= y ). 対応する要素が存在しない場合,短い方のコレクションを先に並べる(例. [1,2] < [1,2,3] が真)。

等しくない場合、配列は最初の異なる要素と同じ順序で並べられます。例えば、cmp([1,2,x], [1,2,y]) は cmp(x,y) と同じものを返します。対応する要素が存在しない場合、短い方の配列が小さいとみなされます(たとえば、[1,2] < [1,2,3]は真を返します)。

注1 : <> は、quot;より小さい、quot;より大きいという意味ではなく、quot;より前、quot;より後という意味であるため、(0、1)はquot;より前、(1、0)はquot; となります。

注2 : タプルは n次元空間におけるベクトル 長さによって比較される。

注3 質問 https://stackoverflow.com/questions/36911617/python-2-tuple-comparison タプルは、1つ目の要素が2つ目の要素より大きい場合にのみ、他のタプルよりquot;great"であると考えないでください。