Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

is 演算子と == 演算子の違い

Posted at

is 演算子と == 演算子の違い

Python では、is 演算子と == 演算子が異なる目的で使用されます。

is 演算子

  • is 演算子は、オブジェクトの同一性を比較します。すなわち、二つのオブジェクトが同じメモリの場所に存在するかを確認します。
  • 主に、変数が同じオブジェクトを指しているかどうかを調べるために使います。

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

print(a is b)  # True - `a` と `b` は同じオブジェクトを指している
print(a is c)  # False - `a` と `c` は異なるオブジェクト
  • ここでは、a is bTrue ですが、a is cFalse になります。なぜなら、ab は同じリストオブジェクトを指しており、ac は内容は同じですが異なるオブジェクトだからです。

== 演算子

  • == 演算子は、オブジェクトの値を比較します。つまり、二つのオブジェクトの内容が等しいかどうかを確認します。

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

print(a == b)  # True - `a` と `b` は同じ内容を持つ
print(a == c)  # True - `a` と `c` は同じ内容を持つが、オブジェクトは異なる
  • ここでは、a == ba == c はどちらも True です。なぜなら、ac は内容が同じだからです。

違いのまとめ

  • is はオブジェクトの同一性を比較します(同じメモリ場所にあるか)。
  • == はオブジェクトの値を比較します(内容が同じか)。

いつ使うか?

  • is は、変数が同じオブジェクトを指しているかどうかを確認したい場合に使用します。例えば、None との比較でよく使われます。

    a = None
    if a is None:
        print("a は None です")
    
  • == は、オブジェクトの内容が等しいかどうかを調べたい場合に使用します。

    a = [1, 2, 3]
    b = [1, 2, 3]
    if a == b:
        print("a と b は同じ内容です")
    
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?