python中深复制与浅复制的区别

python中深复制与浅复制的区别
深复制:即将原对象中所有的值完全复制一份放在内存中(包括可变数据类型对象),即使原对象更改,也不影响其值。

import copy
l1=[1,2,3,[1,2,3]]
l2=copy.deepcopy(l1)
l2[-1].append(4)
l1

这里l2是l1的深复制,即,代码第四行是在l2的最后一个元素添加一个数字4,但是l1的原来的内容没有发生变化,l1=[1,2,3,[1,2,3]],而l2=[1,2,3,[1,2,3,4]]
浅复制:浅复制和深复制是对应的一种复制(可能不太准确,我是这么理解的),浅复制列表时,当修改的元素为可变对象(常见的有list,dict,set),修改的操作会修改原列表。

import copy
l1=[1,2,3,[1,2,3]]
l2=copy.copy(l1)
l2[-1].append(4)
l1

这里的l2为l1的浅复制(copy),同上,但是这里与上面的不同的是,l1=[1,2,3,[1,2,3,4]],l2=[[1,2,3,[1,2,3,4]],很明显l1和l2一样的。
PS:以前看过一个表格,记录了这个深复制与浅复制的区别,忘记在哪了,找到了再来更新一下,python新手一枚,如果有写的不对地方,还请指教,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值