<Python> == と is の違い
違い。。。
is
は、オブジェクト番号 id()
で比較している。
==
はオブジェクトの内容で比較している。
In [1]: lst = [1,2,3] In [2]: lst2 = lst In [4]: id(lst) Out[4]: 439830664 In [5]: id(lst2) Out[5]: 439830664 In [6]: lst2 is lst Out[6]: True In [7]: lst2 == lst Out[7]: True In [8]: import copy In [9]: lst3 = copy.deepcopy(lst) In [10]: id(lst3) Out[10]: 439859400 In [11]: lst3 is lst Out[11]: False In [12]: lst3 == lst Out[12]: True
参考。
http://www.python-izm.com/contents/basis/difference_eq_is.shtml
マニュアル。
http://docs.python.jp/3/reference/expressions.html#comparisons