在前文已经看到过了可以使用list函数去复制一个列表,这个就是浅复制,浅复制会构建一个新的对象,并且维护之前对象(子对象)的引用,而深复制则是将之前的子对象通过递归的方式也拷贝出来。从例子中学习吧。
先看看浅复制:
如果给a再增加一个子列表:
这时候b是不受影响的,但是如果给a的子对象,也就是内部的列表[1,2,3],[4,5,6]进行修改,结果就不一样了。
我们修改了a,但是b也受到了影响,因为在浅复制里并不会复制a中的子对象,而只是复制了子对象的引用给了b。但是给a增加子对象并不会影响b。为了避免这样的副作用,就有了深复制。深复制在python的内置模块copy。
这个时候我们修改a,就不会影响b了。
当然这个不仅仅用于copy内置的容器,也用能于copy对象。
领取专属 10元无门槛券
私享最新 技术干货