您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 |

自学教程:图解Python中浅拷贝copy()和深拷贝deepcopy()的区别

51自学网 2023-06-16 18:56:06
  python
这篇教程图解Python中浅拷贝copy()和深拷贝deepcopy()的区别写得很实用,希望能帮到您。

关于浅拷贝和深拷贝想必大家在学习中遇到很多次,这也是面试中常常被问到的问题,借由这个时间,整理一下浅拷贝和深拷贝的关系

先从一个简单的例子入手吧 定义一个数组的嵌套结构

a = [1,2,3,[4,5,[6]]]

看一下它的gable frame

在这里插入图片描述

当我们做一下浅拷贝copy()时,global frame

a = [1,2,3,[4,5,[6]]] //浅拷贝b = a.copy()

在这里插入图片描述

可以看到,浅拷贝对浅层的数组进行了复制,但深层的引用仍然是指向了原来的引用,这样就会在操作b数组时,会对原来的数组产生修改。

深拷贝

import copya = [1,2,3,[4,5,[6]]] //浅拷贝b = a.copy()//深拷贝c = copy.deepcopy(a)

在这里插入图片描述

可以看到,深拷贝将其内部引用也进行了拷贝,在进行数据操作时是完全使用新数组,对原来的数组不产生影响。

  • 浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,
  • 深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存,

使用深拷贝的情况下,释放内存的时候不会因为出现浅拷贝时释放同一个内存的错误。

到此这篇关于图解Python中浅拷贝copy()和深拷贝deepcopy()的区别的文章就介绍到这了,更多相关Python浅拷贝copy()和深拷贝deepcopy()内容请搜索wanshiok.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持wanshiok.com!


一文详解如何使用Python批量拼接图片
在Python开发环境中调用ChatGPT模型详细过程
51自学网自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1