赋值b=a、浅拷贝copy.copy()、深拷贝copy.deepcopy(a)

  1. 直接赋值:新变量直接引用原对象,任一对象改变,则所有指向了同一可变对象的变量都作相同改变。
  2. 浅拷贝:使用 copy.copy() 函数实现,深拷贝原变量指向的对象的最外层,但引用原变量指向的对象的内层。
  3. 深拷贝:使用 copy.deepcopy() 函数实现,拷贝可变对象的最外层对象及子对象,新变量指向的和原变量指向的对象两者完全独立。
import copy

a = [1, 2, [3, [4, 5]]]
b = a                 # 直接赋值: 引用对象,原始对象的最外层到最内层对象均被引用
c = copy.copy(a)          # 浅拷贝:原始对象的最外层对象深拷贝,除外层的所有层对象直接赋值
d = copy.deepcopy(a)  # 深拷贝,原始对象的最外层到最内层对象均不因原对象的改变而改变

a.append(6)
a[2].append(7)
a[2][1].append(8)

print("a:", a)
print("b:", b)
print("c:", c)
print("d:", d)
a: [1, 2, [3, [4, 5, 8], 7], 6]
b: [1, 2, [3, [4, 5, 8], 7], 6]
c: [1, 2, [3, [4, 5, 8], 7]]   
d: [1, 2, [3, [4, 5]]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值