python
1a = (-1, -10, -3, -4)
2b = (-1, -2, -5)
3
4# このとき
5a > b
6# は、以下のような動きをする
7def func(a, b):
8 length = min(len(a), len(b))
9 for i in range(length):
10 if a[i] == b[i]:
11 continue
12 else:
13 return a[i] > b[i]
14 return len(a) > len(b)
つまり、先頭はどちらも-1
で同じなので次に移動し、二番目同士を比較した-10 > -2
の答えであるFalse
が返されます。
公式ドキュメントの『値の比較』より引用:
● 比較の結果が等価となる2つのコレクションは、同じ型、同じ長さ、対応する要素どうしの比較の結果が等価でなければなりません (例えば、 [1,2] == (1,2) は型が同じでないので偽です)。
● 順序比較をサポートしているコレクションの順序は、最初の等価でない要素の順序と同じになります (例えば、 [1,2,x] <= [1,2,y] は x <= y と同じ値になります)。 対応する要素が存在しない場合、短い方のコレクションの方が先の順序となります (例えば、 [1,2] < [1,2,3] は真です)。
python
1a, b, c = 1, -1, (1-2)
2
3# このとき
4a > b == c
5# は、以下と同じ結果になる
6all((a > b, b == c))