ホームページ >バックエンド開発 >Python チュートリアル >Python で「is」演算子と「==」演算子が異なる結果を返すのはどのような場合ですか?

Python で「is」演算子と「==」演算子が異なる結果を返すのはどのような場合ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-12 14:58:21913ブラウズ

When Do `is` and `==` Operators Return Different Results in Python?

「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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。