python 深拷贝与浅拷贝

关注RPA请访问网站:www.i-search.com.cn学Python,用RPA,欢迎下载使用https://www.i-search.com.cn/?from=csdn在开发一个流程的过程中使用到了变量给变量赋值,出现了意想不到的结果,想起来之前学到的深拷贝与浅拷贝写了一个简单的示例:a = [1, 2, 3]c = [4, 5, 6]b = aprint(“############a:”, a)print(“############b:”, b)a.extend©b.appe
摘要由CSDN通过智能技术生成

关注RPA请访问网站:
www.i-search.com.cn
学Python,用RPA,欢迎下载使用
https://www.i-search.com.cn/?from=csdn

在开发一个流程的过程中使用到了变量给变量赋值,出现了意想不到的结果,想起来之前学到的深拷贝与浅拷贝
写了一个简单的示例:

a = [1, 2, 3]
c = [4, 5, 6]
b = a
print(“############a:”, a)
print(“############b:”, b)
a.extend©
b.append(7)
print(“extend 处理后的 a:”, a)
print(“append 处理后的 b:”, b)

输出结果
############a: [1, 2, 3]
############b: [1, 2, 3]
extend 处理后的 a: [1, 2, 3, 4, 5, 6, 7]
append 处理后的 b: [1, 2, 3, 4, 5, 6, 7]
Process finished with exit code 0

这种情况出现的原因是使用了浅拷贝:即多个变量指向同一容器,
当原容器对象中可变对象中有元素发生变化,拷贝得到的对象也会变化。而使用深拷贝时,不会有这种问题。
如果我们把 b = a 换一下:

a = [1, 2, 3]
c &

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值