リストは数値よりも大きいことがわかりました。
>>> [1,2,3] > 1000
True
これが機能する理由があるのでしょうか? を使用してリストを int に変換することはできませんint([1,2,3])
。 を使用して int をリストに変換することはできませんlist(1000)
。 では、Python はどのようにしてこの 2 つを比較しているのでしょうか?
ベストアンサー1
この「不一致」な型の場合、型は型名によって辞書式にリストされます。つまり、「list」はアルファベット順で「int」の後に来るため、大きくなります。
CPython 実装の詳細: 数値以外の異なる型のオブジェクトは、その型名によって順序付けられます。適切な比較をサポートしない同じ型のオブジェクトは、そのアドレスによって順序付けられます。(ソース)
順序付けに関する言語仕様はありません (一貫しているという事実は別として)。たまたま、型名で辞書順に順序付けするという言語の詳細がある実装としては、CPython が最も一般的なものとなっています。