is 和 == 的区别
==:type,value
is: type,value,id
id:在内存中存储的位置
type:变量的类型
value:变量的值
结论:
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]: li2 = li.copy()
In [10]: li == li1
Out[10]: True
In [11]: li ==li2
Out[11]: True
In [12]: id(li)
Out[12]: 140061398308488
In [13]: id(li1)
Out[13]: 140061398308488
In [14]: id(li2)
Out[14]: 140061398430984
In [15]: li2
Out[15]: [1, 2, 3]
In [16]: li
Out[16]: [1, 2, 3]
In [17]: li1
Out[17]: [1, 2, 3]
In [18]: li is li1
Out[18]: True
In [19]: li is li2
Out[19]: False