ホームページ >バックエンド開発 >Python チュートリアル >Python の「is」演算子: 同一性と平等性 - 違いは何ですか?
「is」演算子の誤解
Python の「is」演算子はよく誤解されています。その名前に反して、変数の値を比較しません。代わりに、オブジェクトの ID を評価します。
オブジェクトの ID について
Python のオブジェクトは、メモリ アドレスによって識別される一意のエンティティです。 2 つの別々の変数を作成し、それらに同じ値を割り当てる場合、同じオブジェクトの 2 つのコピーを作成するのではなく、同じ内容を持つ 2 つの異なるオブジェクトを作成することになります。
「is」演算子テストIdentity
「is」演算子は、2 つの変数がメモリ内の同じオブジェクトを参照しているかどうかをチェックします。それらがまったく同じインスタンスを指している場合、たとえ同じ値を保持していても、True を返します。 2 つの変数の値を比較するには、代わりに「==」演算子を使用します。
例
リストを 2 つの変数に割り当てる次の例を考えてみましょう。
x = [1, 2, 3] y = [1, 2, 3] print(x is y) # Output: False
x と y は両方とも同じ内容を持ちますが、それらは 2 つの異なるオブジェクトであるため、出力は「False」になります。 Memory.
オブジェクト変更の影響
変数の 1 つを変更しても、同じオブジェクトを参照していないため、もう 1 つの変数は変更されません。例:
x[0] = 4 print(y) # Output: [1, 2, 3]
x が変更されても、y の値は変更されません。
結論
「is」演算子はテストします。値の等価性ではなく、オブジェクトの同一性です。変数の値を比較するには、「==」演算子を使用します。この区別を理解することは、Python でオブジェクトと変数を効果的に操作するために重要です。
以上がPython の「is」演算子: 同一性と平等性 - 違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。