频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
python浅拷贝和深拷贝的理解
2018-08-14 15:28:40           
收藏   我要投稿

查资料结果:不同的教材对浅拷贝和深拷贝有不同的理解。例如有的教材说a=[1,2,3,4],这是一个列表,b=a,这就复制了。

我的理解:其实不是的,b=a只是把列表多引用了一个变量名,即这个列表的引用计数+1。复制的意义在于重新划分内存空间,新的内存地址,新的列表通过id()函数查看,值是不同的,这才能是复制。

需要提前了解的:
在python中有复制的模块
import copy
浅拷贝和深拷贝,分别为两个方法
copy.copy()
copy.deepcopy()
一般的复制,浅拷贝和深拷贝都一样。主要是如果存在嵌套的,浅拷贝出现无法完全复制的情况。

示例:
可以看到列表a中的[4,5]是嵌套在列表中的一个列表。浅拷贝无法复制(id()函数看到嵌套列表的值a和b是一样的),但是深拷贝已经复制了(id()函数看到嵌套列表的值a和c是不一样的)。

实现:
从列表中看,实现的方法可以遍历,也可以切片(切片就是深复制)。
遍历的话,需要注意列表的变量名也在列表当中的情况,可能会引起死循环。

点击复制链接 与好友分享!回本站首页
上一篇:Linux常用命令解析
下一篇:http幂等性解析
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站