Python学习——深拷贝与浅拷贝

网上资料很多,不重复记录
https://blog.youkuaiyun.com/zhubaoJay/article/details/90897028

新增:

b=copy.copy(a)
b=copy.deepcopy(a)
里面拷贝的a是元组,那么与b = a等价,因为元组是不可变类型。

import copy 

a = (11, 22)
b = copy.copy(a)
id(a) == id(b)  # True 
c = copy.deepcopy(a)
id(a) == id(c)  # True 

a = [11, 22]
b = [33, 44]
c = (a, b)
d = copy.copy(c)
id(c) == id(d)  # True 
e = copy.deepcopy(c)
id(c) == id(e)  # False

如果拷贝的对象都是不可变类型,deepcopy与copy相同,
若存在可变元素,则不同。

a = [11, 22, ['a', 'b']]
b = a[:]
id(a) == id(b)  # False
id(a[0]) == id(b[0])  # True
# 切片与copy.copy一样是浅拷贝

字典的拷贝
与切片一样的浅拷贝

d = {name:'zhangsan', age:47, childrens_age:[11, 22]}
co = d.copy()
id(d) == id(co)  # False
id(d[name] == id(co[0])  #True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值