py_深拷贝和浅拷贝

“==”和“is”的区别:"=="只要值相等即可 "is"必须指向同一个东西

a=[11 22 33]
b=[11 22 33]
c=a

a==b        #return True
a is b      #return False

a==c        #return True
a is c      #return False

深拷贝和浅拷贝:浅拷贝只拷贝地址(指向相同),深拷贝完全复制

a=[11 22 33]

#浅拷贝
import copy
b=a        #a,b指向同一个地址   
e=copy.copy(a)
a.append(44) #b=[11 22 33 44]  

e=[11 22 33 44] #a,e不同地址


#深拷贝
import copy
c=[11 22 33]
d=copy.deepcopy(c) #d只复制了c的内容
c.append(44)
d=[11 22 33]

扩展:深拷贝内容为地址(列表)的列表   #递归到底

import copy

a=[11 22 33]
b=[44 55 66]
c=[a b]
d=copy.deepcopy(c)

a.append(44)
#d[0]=[11 22 33]  c内的子数组完全被复制,而不是将地址作为元素传递给d

copy和deepcopy区别

copy能够自动判断类型

copy复制时只能是别第一层引用[可变类型]

copy只复制地址(浅拷贝)[不可变类型] 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值