>>> a = [1, 2, 3]
>>> b = a[:]
>>> b
[1, 2, 3]
>>> id(a)
140278317281792
>>> id(b)
140278317209936
>>> a is b
False
>>> a == b
True
解释:
上述代码中,将a中的元素赋给了b,但是b是新的一个列表,因此与a的地址是不同的。id()方法会将对象的内存输出出来,可以看到a与b输出的地址确实不同。
接下来,is方法是判断a与b的地址是否严格相等,若严格相等,则输出true。
而==方法判断的是两者的值是否相等,会调用类中重写的__eq__(self, obj)方法。
本文通过Python代码演示了列表的浅拷贝过程,并对比了'=='和'is'操作符的区别。'=='比较的是两个列表的元素值是否相同,而'is'则用于检查两个变量是否引用同一个对象。

被折叠的 条评论
为什么被折叠?



