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

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

Patricia Arquette
リリース: 2024-12-14 00:00:12
オリジナル
844 人が閲覧しました

When Do Python's `is` and `==` Operators Produce Different Results?

「is」演算子を再理解する

Python などのプログラミング言語の「is」演算子は、次の比較を可能にする強力なツールです。価値観を超えたオブジェクト。よくある誤解とは異なり、「is」は変数の値を比較するのではなく、インスタンス自体を比較します。この違いを理解するには、次の例を考えてください。

x = [1, 2, 3]
y = [1, 2, 3]

print(x is y)  # False
ログイン後にコピー

ここで、「is」演算子は False を返し、変数 x と y が同じ値を持つにもかかわらず、別個のインスタンスを参照していることを示します。この違いは、Python のオブジェクト ID の概念に由来します。

リストを含む Python の各オブジェクトは、独自のメモリ位置を持つ一意のインスタンスとして保存されます。 「id()」関数を使用すると、オブジェクトのメモリ アドレスを取得でき、x と y が別々のアドレスを持つことがわかります。

print(id(x))  # 123456789
print(id(y))  # 987654321
ログイン後にコピー

「is」演算子を使用する場合、2 つの変数があるかどうかを確認します。まったく同じインスタンスを参照します。この場合、内容が同一であっても、x と y はリスト型の別個のインスタンスです。

オブジェクトの同一性ではなく値を比較するには、「==」等価演算子を使用する必要があります。

print(x == y)  # True
ログイン後にコピー

「is」とは対照的に、「==」は 2 つのオブジェクトの値が一致するかどうかを検証します。

以上がPython の「is」演算子と「==」演算子が異なる結果を生成するのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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