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

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

Barbara Streisand
リリース: 2024-12-12 14:58:21
オリジナル
905 人が閲覧しました

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

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