ホームページ >バックエンド開発 >Python チュートリアル >Python の「==」と「is」の違いは何ですか?

Python の「==」と「is」の違いは何ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-24 22:41:11649ブラウズ

What's the Difference Between `==` and `is` in Python?

Python の "==" と "is" の違いを理解する

Python で値を比較する場合、一般的な 2 つの点があります。演算子: 「==」と「is」。多くの場合、これらの演算子は同じ等価性チェックを実行しているように見えるかもしれません。ただし、評価する内容に関しては、この 2 つの間に微妙な違いがあります。

「==」演算子と「is」演算子

  • "==: 値が等しいかどうかをテストします。これは、2 つの変数が同じものを含むオブジェクトを参照しているかどうかを評価することを意味します。 value.
  • "is": これは、値に関係なく、2 つの変数がメモリ内の同じオブジェクトを参照しているかどうかをチェックします。

値の等価性とオブジェクトの同一性

値等価性:

  • 「==」を使用すると、Python は変数によって参照されるオブジェクトの値を比較します。
  • 値が等しい場合、結果は True になります。オブジェクトが異なるインスタンスであるかどうかに関係なく、 Memory.

例:

a = 10
b = 10

if a == b:
    print("Yay!")  # Will print "Yay!" as 10 == 10

オブジェクト ID:

  • 「is」を使用すると、Python はオブジェクトを比較します。変数の識別子。
  • 変数が同じオブジェクトを参照している場合

例:

a = [1, 2, 3]
b = a

if a is b:
    print("Yay!")  # Will print "Yay!" as a and b point to the same list

ルールの例外

  • 整数: Python は小さい整数オブジェクト (最大256) パフォーマンス上の理由から。これは、「is」は、次の範囲内の異なる整数変数に対しても True を返す可能性があることを意味します:
a = 100
b = 100

if a is b:
    print("Yay!")  # Will print "Yay!" due to integer caching
  • 文字列: 同様に、Python は一般的な文字列リテラルをキャッシュします。ただし、これは変数から作成された文字列には適用されないことに注意してください。
a = "a"
b = "a"

if a is b:
    print("Yay!")  # Will print "Yay!" as string literals are cached

b = "aa"

if a is b:
    print("Nay!")  # Will not print as b is a different object

要約すると、「==」は値の同一性をテストし、「is」はオブジェクトの同一性をテストします。この違いを理解することは、正しく効率的な Python コードを作成するために不可欠です。

以上がPython の「==」と「is」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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