Python中的深浅拷贝问题

Python中的浅拷贝只是拷贝指向内存地址的链接,而Python中的深拷贝是指拷贝一份内训地址,而不只是简单拷一个链接,拷贝链接直观的表现就是你更改原数据,拷贝的那份会相应产生变化,但是如果是深拷贝则不会产生这样的情况,如下图所示:

Python中的深浅拷贝问题_第1张图片

导入copy模块,deepcopy()是深拷贝,所以id(c)和id(e)的地址不一样,copy()则是视拷贝数据类型不同而变,如果拷贝的是不可变数据类型,比如元组,那么拷贝就是内存地址的链接,很好理解,因为不可变数据类型本身就是不能更改的,拷贝内存地址也没有意义,但是拷贝的是可变数据类型,比如列表的时候,那么就是拷贝内存地址,但是嵌套层只拷贝链接,这是与深拷贝不同的地方,深拷贝从嵌套出来全都都是拷贝内存地址。

你可能感兴趣的:(Python学习)