谁能帮我解释一下python 深浅拷贝。
上次面试,碰到一个问题:
a = [1,2,3,4,5]
b = a[1:3]
问我,这个过程是浅拷贝还是深拷贝。我蒙了个浅拷贝。不知对否?
利用切片操作方法拷贝就叫浅拷贝,只是拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已。
利用copy中的deepcopy方法进行拷贝就叫做深拷贝,外围和内部元素都进行了拷贝对象本身,而不是引用。
但是对于数字,字符串和其他原子类型对象等,没有被拷贝的说法,即便是用深拷贝,查看id的话也是一样的,如果对其重新赋值,也只是新创建一个对象,替换掉旧的而已。
引用:http://www.01happy.com/python-shallow-copy-and-deep-copy/