ホームページ > バックエンド開発 > Python チュートリアル > Python の文字列比較: `==` と `is` をいつ使用する必要がありますか?

Python の文字列比較: `==` と `is` をいつ使用する必要がありますか?

DDD
リリース: 2024-12-21 21:58:41
オリジナル
603 人が閲覧しました

Python String Comparison: When Should I Use `==` vs. `is`?

文字列の比較: '==' と 'is' の難問

プログラミングでは、文字列の比較は多くの場合重要な操作です。ただし、「==」演算子と「is」演算子を使用すると、異なる結果が得られる場合があり、開発者は困惑することがあります。

違いを理解する

「=」演算子は次のチェックを行います。 'is' は値が等しいかどうかをチェックし、'is' はメモリ内の同一性をチェックします。同一性テストでは 2 つの変数がメモリ内のまったく同じオブジェクトを参照しているかどうかが判断され、等価性テストではそれらの値が比較されます。

違いが生じる理由

文字列を比較する場合、Python は最適化を行います。既存の文字列を再利用することでメモリ使用量を削減します。したがって、同じ文字列値を複数の変数に代入しても、新しい文字列オブジェクトは作成されず、代わりに同じ基になるオブジェクトを参照する可能性があります。これは、「==」が等しい文字列に対して True を返す理由を説明しています。

ただし、文字列が変更されたり、異なる値が割り当てられたりすると、新しいオブジェクトが作成され、ID リンクが壊れます。その結果、値が等しいため、「==」が True を返しても、「is」は False を返します。

次のコードを考えてみましょう。

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

ここでは、s1 と s2 の両方が同じ文字列オブジェクトを参照しているため、「==」と「である」は True を返します。ただし、s2 を変更すると:

s2 = s2 + ' more'
ログイン後にコピー

今度は、s2 に対して新しい文字列オブジェクトが作成され、ID リンクが切断されます。 「==」は値が等しいため True を返しますが、「is」は s1 と s2 が異なるオブジェクトを参照しているため False を返します。

以上がPython の文字列比較: `==` と `is` をいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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