0.5から始める機械学習

Machine Learning, Deep Learning, Computer Vision に関する備忘録

【Python】 「==」 と 「is」 の違いについて

Pythonにおいてオブジェクト同士を比較する方法として、「==」「is」がありますが、違いをいまいち把握しないまま使用して、痛い目を見たので備忘録として。

「==」について

「==」は2つのオブジェクトが等価かどうかを判断する。

obj1 = [1, 2, 3]
obj2 = [1, 2, 3]

obj1 == obj2 # True

「is」について

「is」はオブジェクトのidが同じかどうかを判断する。

obj1 = [1, 2, 3]
obj2 = [1, 2, 3]

obj1 is obj2 # False

まとめ

  • 「==」:オブジェクトが等価かどうか
  • 「is」: オブジェクトのidが同じかどうか

ちなみに、PEP8規約によるとNoneとの比較は「is」が推奨されているようです。