Python基础学习简记--深浅拷贝(Day16)

Python基础学习简记–赋值与深浅拷贝(Day16)

深浅拷贝的问题是python的一个重点知识,我们来总结一下赋值与深浅拷贝的具体区别。

1、定义

赋值:python中的赋值其实就是对象的引用。也就是从变量到对象的一个指针。
浅拷贝:copy.copy()只拷贝最外层的对象本身,内层的元素只是拷贝了一个引用。
深拷贝:copy.deepcopy()从外到内的元素都进行了一次拷贝,得到了一个完全独立的副本。

2、区别

对于不可变的数据类型,其实并没有深浅拷贝的区别,对它的赋值深浅拷贝都是得到一个引用而已。
对于可变数据类型,赋值也就是引用,新对象与源对象有相同的地址。
浅拷贝是创建了一个新地址,它内部的元素还是对源对象的引用,如果这时改变源对象中的值,拷贝的新对象也会发生变化。这里的改变实际表现为第二层上的改变,因为第一层元素如果是不可变,也就谈不上改变了,而是舍弃旧值,赋予新值,这时已经赋值的另外引用自然也并不会跟着变化。
深拷贝是重新分配一份相同大小的新内存对源对象的一个完全复制。

深浅拷贝的实际意义更多的是在数据处理时对内存的优化上,因为内存即是效率。

3、参考文献

https://blog.csdn.net/u014745194/article/details/70271868

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值