ホームページ > バックエンド開発 > Python チュートリアル > Python 2 は異なるタイプのオブジェクトをどのように比較するのでしょうか?

Python 2 は異なるタイプのオブジェクトをどのように比較するのでしょうか?

Mary-Kate Olsen
リリース: 2024-12-17 04:48:24
オリジナル
548 人が閲覧しました

How Does Python 2 Compare Objects of Different Types?

Python 2 でのオブジェクト比較の仕組み

異なる型のオブジェクトを比較するときの Python 2 の動作は混乱を招く可能性がありますが、これは言語仕様で提供される実装の詳細に基づいています。

実装固有の動作

オブジェクトを比較するとき異なる型の場合、Python 2 は次の順序を使用します:

  • 数値が最初: 数値型 (整数、浮動小数点数) は非数値より優先されます。
  • 文字列の辞書編集順: 文字列が比較されます辞書順。
  • 数値以外の型名の順序: 同じ型であっても適切な比較方法がないオブジェクトは、型名によってアルファベット順に並べ替えられます。

へ図:

print "100" < "2"      # True (lexicographic)
print "5" > "9"        # False (lexicographic)

print "100" < 2        # False (numeric first)
print 100 < "2"        # True (numeric first, lexicographic second)

print 5 > "9"          # False (lexicographic)
print "5" > 9          # True (numeric first, lexicographic second)

print [] > float('inf') # True (non-numeric ordering)
print () > []          # True (non-numeric ordering)
ログイン後にコピー

実装の詳細

この動作は、Python 2 の CPython 実装によって義務付けられています。言語仕様では、異なる型のオブジェクトが「恣意的かつ一貫して」順序付けされ、実装までの詳細を説明します。

バージョンとバージョンの違い実装

Python 3 では、整数と文字列の比較でエラーが発生します。 Python の他の実装でも動作が若干異なる場合があります。

以上がPython 2 は異なるタイプのオブジェクトをどのように比較するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート