当前位置:首页 > 经验 >

浅拷贝和深拷贝的值会不会变(高拷贝和低拷贝的区别)

来源:原点资讯(www.yd166.com)时间:2022-10-24 22:44:50作者:YD166手机阅读>>

前面我们曾经聊到列表从内存的角度是什么样的?有兴趣的可以关注我,看一下《python之从内存读写的角度,学习并玩转list》章节的内容。今天我们依然从内存图出发,带你看一下内存深处的关于深拷贝和浅拷贝的那些奥秘。

深拷贝和浅拷贝第一点,深拷贝和浅拷贝的解释

深拷贝:复制整个依赖的变量

浅拷贝:复制过程中只复制一层变量,不会复制深层变量所绑定的变量

第二点,深拷贝和浅拷贝的区别

深拷贝生成的新的列表和原列表没有关系

浅拷贝生成的列表如果修改的不是第一层变量,复制的列表会随之改变,但是如果改变的是第一层的变量,新列表不会修改

第三点,深拷贝和浅拷贝的内存图1.1 深拷贝内存图案例

演示代码:

import copy

list1=[1,[2,3]]

list2=copy.deepcopy(list1)

list1[1][0]=100

print list2[1][0]

浅拷贝和深拷贝的值会不会变,高拷贝和低拷贝的区别(1)

上图表示的是list2的深拷贝实现

浅拷贝和深拷贝的值会不会变,高拷贝和低拷贝的区别(2)

上图表示修改了list1[1][0]=100,此时对list2没有任何影响。

浅拷贝和深拷贝的值会不会变,高拷贝和低拷贝的区别(3)

所以list2[1][0]=2

1.2 代码解读

浅拷贝和深拷贝的值会不会变,高拷贝和低拷贝的区别(4)

首页 123下一页

栏目热文

为什么要深拷贝浅拷贝(零拷贝和深拷贝)

为什么要深拷贝浅拷贝(零拷贝和深拷贝)

关于对象的拷贝,大部分时间我们用的都是浅拷贝,比如赋值符号(“=”)以及memcpy()等。那么既然浅拷贝这么简单,为...

2022-10-24 22:08:28查看全文 >>

深拷贝和浅拷贝和零拷贝的区别(深拷贝与浅拷贝示意图)

深拷贝和浅拷贝和零拷贝的区别(深拷贝与浅拷贝示意图)

原型模式也是创建对象的一种方式,它一般用在这样的场景:系统中存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建...

2022-10-24 22:15:15查看全文 >>

深拷贝和浅拷贝的方法(深拷贝的方法及优缺点)

深拷贝和浅拷贝的方法(深拷贝的方法及优缺点)

由于JavaScript中对象是引用类型,保存的是地址,深、浅拷贝的区别是,当拷贝结束后,在一定程度上改变原对象中的某一...

2022-10-24 22:44:42查看全文 >>

白糖和化肥为什么能爆炸(国家为什么要管控白糖)

白糖和化肥为什么能爆炸(国家为什么要管控白糖)

【军武次位面】作者:leon最近,克里米亚大桥被炸毁的消息想必是引起了全球的关注与报道,作为当前俄乌冲突中的极具战略价值...

2022-10-24 22:10:34查看全文 >>

满月剃头仪式流程(满月剪胎毛口诀)

满月剃头仪式流程(满月剪胎毛口诀)

引言中国人从古至今都特别重视“满月”这个日子,小孩生下来满一个月的时候,家人们就会设席摆宴,邀请朋好友来给孩子庆祝满月。...

2022-10-24 21:59:43查看全文 >>

深拷贝解决浅拷贝的问题(深拷贝的缺点)

深拷贝解决浅拷贝的问题(深拷贝的缺点)

作者:小丑转发链接:https://mp.weixin.qq.com/s/i_vGi8C5PBa_KOV7MtVPWQ前...

2022-10-24 22:51:29查看全文 >>

深拷贝和浅拷贝的简单理解(深拷贝解决浅拷贝的问题)

深拷贝和浅拷贝的简单理解(深拷贝解决浅拷贝的问题)

前言平时我们从数据库查询出 po 对象,要返回给前端时,会有另一个对象 vo,此时我们需要将 po 的值复制给 vo,如...

2022-10-24 22:07:09查看全文 >>

简述浅拷贝和深拷贝的区别(浅拷贝深拷贝哪个是原地操作)

简述浅拷贝和深拷贝的区别(浅拷贝深拷贝哪个是原地操作)

使用场景:开发的时候对引用类型进行处理,为了避免修改一个引用类型数据时,其他用这个变量来赋值的变量也都被改变了。如下例子...

2022-10-24 22:53:14查看全文 >>

深拷贝和浅拷贝图解(深拷贝和浅拷贝的方法)

深拷贝和浅拷贝图解(深拷贝和浅拷贝的方法)

作者:南枝向暖北枝寒MA 原文链接:https://blog.csdn.net/mall_lucy/article/de...

2022-10-24 22:21:57查看全文 >>

谈谈你对浅拷贝和深拷贝的理解(零拷贝和深拷贝)

谈谈你对浅拷贝和深拷贝的理解(零拷贝和深拷贝)

先说下自己的理解吧,浅拷贝,即在定义一个类A,使用类似A obj; A obj1(obj);或者A obj1 = obj...

2022-10-24 22:24:54查看全文 >>

文档排行