[python] 比較におけるisと==の違い

referenceによると、以下の通り。

==とis

  • ==はオブジェクトの値が同一か比較する。基本はこちらを使う。
  • isは同じオブジェクトがどうか比較する。比較にはid()の値を使う。

string

>>> s1 = 'hoge'
>>> s2 = 'hoge'
>>> id(s1)
4379138456
>>> id(s2)
4379138456
>>> s1 == s2
True
>>> s1 is s2
True

list

>>> l1= []
>>> l2= []
>>> id(l1)
4379117128
>>> id(l2)
4378993608
>>> l1 == l2
True
>>> l1 is l2
False

tuple

>>> t1=(3,3)
>>> t2=(3,3)
>>> id(t1)
4379077832
>>> id(t2)
4379078472
>>> t1 == t2
True
>>> t1 is t2
False
このエントリーをはてなブックマークに追加
Takatomo Honda avatar
About Takatomo Honda
システム開発 / プロトタイプ開発 / 開発組織の構築 / アプリケーションの内製化 /等、お気軽にご相談ください。