python-常考:is 和 == 的區別
阿新 • • 發佈:2018-12-03
id:在記憶體中儲存的位置
type:變數的型別
value:變數的值
== :type,value
is:type,value,id
結論:
is 表示兩個變數的值是否在同一塊記憶體空間
== 表示的是值是否相等
總結: is 返回的值是True ==返回的一定是true
In [1]: a = '1' In [2]: b = 1 In [3]: a == b Out[3]: False In [4]: a = '1' In [5]: b = a In [6]: a is b Out[6]: True In [7]: li = [1,2,3] In [8]: li1 = li In [9]: li == li1 Out[9]: True In [10]: li2 = li.copy() #.copy id會變成一個新的 In [11]: id(li) Out[11]: 140233732343752 In [12]: id(li1) Out[12]: 140233732343752 In [15]: id(li2) Out[15]: 140233732186888 In [16]: id(li1) Out[16]: 140233732343752 In [17]: id(li) Out[17]: 140233732343752 In [18]: li2 Out[18]: [1, 2, 3] In [19]: li Out[19]: [1, 2, 3] In [20]: li1 Out[20]: [1, 2, 3] In [21]: li == li1 Out[21]: True In [22]: li == li2 Out[22]: True In [23]: li1 == li2 # == 是值相等 Out[23]: True In [24]: li2 is li #is 是值和id都要相等 Out[24]: False In [25]: li2 is li1 Out[25]: False In [26]: li1 is li Out[26]: True