is演算子でオブジェクトの同一性比較を行う – 【Python】

4.0

is演算子でオブジェクトの同一性比較を行う – 【Python】

Pythonでオブジェクトが同一かどうかを比較するにはis演算子を使用します。

ミュータブルなオブジェクトの比較

否定はis not演算子を使用します。

from decimal import Decimal

a = Decimal('0.1')
b = Decimal('0.1')
print(a is a) # True
print(a is b) # False
print(a is not a) # False
print(a is not b) # True

イミュータブルなオブジェクトの比較

イミュータブルなタプルの比較をします。

tuple1 = (1, 2, 3)
tuple2 = (1, 2, 3)

print(tuple1 is tuple2) # True

タプルはイミュータブルなので、同じオブジェクトを参照する場合がある為Trueになります。

但しこのコードは必ずTrueになるわけではないので、タプル、文字列などの比較はis演算子で比較するのではなく、id関数で比較する必要があります。

tuple1 = (1, 2, 3)
tuple2 = (1, 2, 3)

print(id(tuple1)) # 1621248055488
print(id(tuple2)) # 1621248055488
print(id(tuple1) == id(tuple2)) # True

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました