ホームページ > バックエンド開発 > Python チュートリアル > Python の文字列比較: `==` が `is` と異なるのはどのような場合ですか?

Python の文字列比較: `==` が `is` と異なるのはどのような場合ですか?

Barbara Streisand
リリース: 2024-12-26 16:39:14
オリジナル
610 人が閲覧しました

Python String Comparison: When Does `==` Differ From `is`?

文字列比較の不一致の詳細: '==' と 'is'

いずれかの '== を使用して文字列を比較する行為' または 'is' は、場合によっては対照的な結果をもたらすことがあります。これにより、なぜこの不一致が存在するのかという疑問が生じます。

2 つの文字列変数は同じ値を持つ可能性がありますが、's1 == s2' は一貫して True を返しますが、's1 is s2' は時々 False を返します。

Python で解釈すると、同様の比較が成功します。

>>> s1 = 'text'
>>> s2 = 'text'
>>> s1 is s2
True
ログイン後にコピー

この現象を理解するには、次のことが重要です。同一性テスト ('is') と等価性テスト ('==') を区別します。

この例では、発生する内容が次のようにインタプリタで再現されます。

>>> a = 'pub'
>>> b = ''.join(['p', 'u', 'b'])
>>> a == b
True
>>> a is b
False
ログイン後にコピー

不一致は、「is」がオブジェクトのアイデンティティ (つまり、メモリアドレス) を比較するのに対し、「==」はそれらの値を比較するために発生します。上記のシナリオでは、「a」と「b」は同じ値を持ちますが、メモリ内に別々に存在します。

したがって、たとえそれらが別個のオブジェクトであるとしても、「a is b」が False と評価されるのは論理的です。それらの内容は一致します。本質的に、「a は b」は「id(a) == id(b)」と同じです。

以上がPython の文字列比較: `==` が `is` と異なるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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