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
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^