图解Python中浅拷贝copy()和深拷贝deepcopy()的区别
作者:跳舞的猴子 发布时间:2021-12-09 21:09:39
标签:Python,浅拷贝,深拷贝
关于浅拷贝和深拷贝想必大家在学习中遇到很多次,这也是面试中常常被问到的问题,借由这个时间,整理一下浅拷贝和深拷贝的关系
先从一个简单的例子入手吧 定义一个数组的嵌套结构
a = [1,2,3,[4,5,[6]]]
看一下它的gable frame
当我们做一下浅拷贝copy()时,global frame
a = [1,2,3,[4,5,[6]]]
//浅拷贝
b = a.copy()
可以看到,浅拷贝对浅层的数组进行了复制,但深层的引用仍然是指向了原来的引用,这样就会在操作b数组时,会对原来的数组产生修改。
深拷贝
import copy
a = [1,2,3,[4,5,[6]]]
//浅拷贝
b = a.copy()
//深拷贝
c = copy.deepcopy(a)
可以看到,深拷贝将其内部引用也进行了拷贝,在进行数据操作时是完全使用新数组,对原来的数组不产生影响。
浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,
深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存,
使用深拷贝的情况下,释放内存的时候不会因为出现浅拷贝时释放同一个内存的错误。
来源:https://blog.csdn.net/weixin_45683963/article/details/119569745
0
投稿
猜你喜欢
- 当用户的页面需要动态加载iframe 时, 如果iframe的src中包传中文参数会出现编码错误;必须加编码,然后再解码。 编码:encod
- 1.效果2.环境1.pytorch2.visdom3.python3.53.用到的代码# coding:utf8import torchfr
- 在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数。万能的python就自带了argprase包 使
- 本文实例讲述了PHP中soap的用法,分享给大家供大家参考。具体用法分析如下:PHP 使用soap有两种方式。一、用wsdl文件服务器端:&
- 在 Go 语言中,指针是一种重要的概念。了解和正确使用指针对于理解语言的底层机制、编写高效的代码以及处理复杂数据结构都非常关键。本文将深入探
- 本文讲述了mysql索引必须了解的几个重要问题。分享给大家供大家参考,具体如下:1、索引是做什么的?索引用于快速找出在某个列中有一特定值的行
- 1、二维数组取值注:不管是二维数组,还是一维数组,数组里的数据类型要一模一样,即若是数值型,全为数值型#二维数组import numpy a
- Python最长回文子串1.暴力解法(Brute Method)暴力求解是最容易想到的,要截取字符串的所有子串,然后再判断这些子串中哪些是回
- 假设现有一张人员表(表名:Person),若想将姓名、身份证号、住址这三个字段完全相同的记录查找出来,使用1: SELECT p
- 1.交换变量值2.将一列表中的所有元素拼接成字符串3.查找list中最高频率的值4.检查两个单词是否是字谜(组成的字母和对应数量一致)5.反
- 近期,我做了一个娱乐门户的投票系统,也是被刷票搞的焦头烂额,一切可用的方法都用了。但都不是太理想,最终,琢磨出来了下面的方法,我做成了流程图
- 看了好多登录注册和注销的教程,很乱,很迷,然后总结了一下,简单的做了一个登录,注册和注销的页面。1,首先,使用pycharm创建一个项目单击
- Python pass是空语句,pass语句什么也不做,一般作为占位符或者创建占位程序,是为了保持程序结构的完整性,pass语句不会执行任何
- MySQL使用环境变量TMPDIR的值作为保存临时文件的目录的路径名。如果未设置TMPDIR,MySQL将使用系统的默认值,通常为/tmp、
- 一、前言为方便描述教程例子,这里给出mysql表结构定义和golang结构体定义。下面是教程用到的foods表结构定义:CREATE TAB
- exam = { 'math': '95', 'eng': '96',
- 平时写得多的是python,最近看了一点go,今天碰到了一个问题,和大家分享一下package mainimport "fmt&q
- 大家有没有这种感觉,一到国庆、春节这种长假,抢火车票就非常困难?各大互联网公司都推出抢票服务,只要加钱给服务费就可以增加抢到票的几率。有些火
- 目录前言项目设计后端前端运行项目Q&A前言在前面的Api开发中,我们使用FastApi已经可以很好的实现。但是实际使用中,我们通常建
- <input type=button value=刷新 onclick="hist