「is」演算子を理解する
値が同じであるにもかかわらず、「is」演算子を使用するときによくある誤解は、変数の値を比較します。ただし、この演算子は実際には 2 つの変数が同じオブジェクトを参照しているかどうかを評価します。
この例では、次のコード:
x = [1, 2, 3] y = [1, 2, 3]
は、"is" 演算子が返されることを期待する可能性があります。 True ですが、False が返されます:
print(x is y) # False
これは、x と y が、同じ値を共有しているにもかかわらず、2 つの異なるリストと見なされるためです。これらは、固有の識別子によって明らかなように、異なるオブジェクトです:
print(id(x)) print(id(y)) # Different identifiers indicate different objects
値を比較するには、代わりに「==」演算子を使用してください:
print(x == y) # True for equal values
リストの 1 つを変更しても、もう一方に影響を与え、それらが別個のオブジェクトであることを確認します:
x[0] = 4 print(y) # [1, 2, 3] (Unchanged)
y を x に代入すると、同じリストを指す新しい参照が作成されますobject:
x = y print(id(x)) print(id(y)) # Same identifiers after assignment print(x is y) # True (Same object)
「is」演算子はオブジェクトの同一性をテストし、「==」演算子は値を比較することに注意してください。変数の参照動作を理解する際の潜在的な混乱を避けるために、これらを慎重に使用してください。
以上がPython で「is」演算子と「==」演算子が異なる結果を返すのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。