编程语言
首页 > 编程语言> > 01-Python深拷贝与浅拷贝

01-Python深拷贝与浅拷贝

作者:互联网

对象的引用

c语言中,创建一个变量a并且初始化,系统会分配一个空间给a。这时如果令b=a;那么系统会开辟另一个新的空间给b并且把原变量的值原封不动地复制过去。
而在Python中,变量名都是引用。a,b都是指向这个对象[11, 22],并没有开辟新的空间。
在这里插入图片描述

拷贝

导入copy模块,深拷贝deepcopy,浅拷贝copy

浅拷贝

b=copy.copy(a)创建一个a的浅拷贝对象,我们可以使用id(b),id(a)来查看内存的地址。
可以看到,a和b的id其实是不一样的。因此浅拷贝开辟了新的空间给b,而且数据也复制了一份。
在这里插入图片描述

但此时有个问题,我们如果在一个列表c中添加两个对象a.b呢,这时候浅拷贝的对象,究竟是下面哪两种情况呢?

深拷贝

如图,c,d的id不同,而且改变a后d并没有受到影响,因此深拷贝就是将数据完全拷贝了一份。
在这里插入图片描述

注意:元组

x星云Nebularr 发布了7 篇原创文章 · 获赞 0 · 访问量 61 私信 关注

标签:开辟,01,Python,元组,对象,拷贝,copy,id
来源: https://blog.csdn.net/Nebularr/article/details/104442517