比較演算子とis演算子
ソース-Wikidocsのアップグレード
Pythonで2つの値を比較する場合は==演算子を使用します.2つのオブジェクトが同じ値を持つかどうかを比較し、2つのオブジェクトが同じアドレスに割り当てられたオブジェクトであるかどうかを比較するには、is演算子を使用します.
比較値:==
比較対象アドレス:is
しかし、次の状況は違います.今回はもっと小さい整数値をバインドします.
これは、Pythonから整数256までの値が既に存在する場合、既存のオブジェクトがバインドされるためである.これは、同じ値をメモリに割り当てることによるメモリの浪費を減らすためです.
比較演算子
Pythonで2つの値を比較する場合は==演算子を使用します.2つのオブジェクトが同じ値を持つかどうかを比較し、2つのオブジェクトが同じアドレスに割り当てられたオブジェクトであるかどうかを比較するには、is演算子を使用します.
比較値:==
比較対象アドレス:is
a = 1000
b = 1000
id(a)
>>> 2074833836240
id(b)
>>> 2074833839984
print(a == b)
>>> True
print(a is b)
>>> False
上記のコードでは、aとbは同じ値1000をバインドします.ただし、1000という名前の整数オブジェクトは、互いのメモリ位置に割り当てられた異なるオブジェクトです.したがって、==演算子の結果はtrueであり、is演算子の結果はfalseである.しかし、次の状況は違います.今回はもっと小さい整数値をバインドします.
a = 77
b = 77
id(a)
>>> 2074832800368
id(b)
>>> 2074832800368
print(a == b)
>>> True
print(a is b)
>>> True
今回は、2つの変数a,bが同じアドレスを表し、==、is演算子が真の値を返すことがわかります.これは、Pythonから整数256までの値が既に存在する場合、既存のオブジェクトがバインドされるためである.これは、同じ値をメモリに割り当てることによるメモリの浪費を減らすためです.
Reference
この問題について(比較演算子とis演算子), 我々は、より多くの情報をここで見つけました https://velog.io/@donghak/비교-연산자와-is-연산자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol