Python中“=”、切片、copy和deepcopy
来源:互联网 发布:multisim mac 编辑:程序博客网 时间:2024/05/16 09:32
Python总的数据复制一般有四种 “=”,“切片”,“copy.copy()”,“copy.deepcopy()”
今天我们来重点分析下Python中的浅拷贝和深拷贝
1."=" 一般意义的复制
我们所说的一般意义的“等于号“相当于引用,即原始队列改变,被赋值的队列也会作出相同的改变。
直接赋值,传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变
2、列表切片
Python中列表切片是深拷贝,即被复制的对象作为一个一个新的个体独立存在,任意改变其一不会对另一个对象造成影响。
3、Python中的copy
copy是浅拷贝,并不会产生一个独立的对象单独存在,他只是将原有的数据块打上一个新标签,所以当其中一个标签被改变的时候,数据块就会发生变化,另一个标签也会随之改变。这就和我们寻常意义上的复制有所不同了。
这里需要注意,对于简单对象来说,深拷贝、浅copy并没有区分,改变原始队列,赋值队列并不会改变。
但是对于嵌套队列来说,改变了子对象的值,浅拷贝会随之变化,深拷贝不会。
4、深拷贝 deepcopy
Python中的copy动作,对于一个复杂对象的子对象并不会完全复制,什么是复杂对象的子对象呢?就比如序列里的嵌套序列,字典里的嵌套序列等都是复杂对象的子对象。
对于子对象,浅拷贝动作会把它当作一个公共镜像存储起来,所有对他的复制都被当成一个引用,所以说当其中一个引用将镜像改变了之后另一个引用使用镜像的时候镜像已经被改变了。
对于子对象,深拷贝动作会将复杂对象的每一层复制一个单独的个体出来,因而二者完全独立。
阅读全文
0 0
- Python中“=”、切片、copy和deepcopy
- Python中copy和deepcopy中的区别
- python copy.copy和copy.deepcopy
- Python中的Copy和Deepcopy
- Python中的copy和deepcopy
- Python 中的 ‘=’,copy,deepcopy
- python中copy与deepcopy的使用
- Python 中copy与deepcopy的比较
- Python中 copy, deepcopy 的区别
- python里的copy和deepcopy
- python 浅copy和深deepcopy
- python的copy.copy()和copy.deepcopy()方法
- python copy deepcopy
- python copy & deepcopy 区别
- python copy & deepcopy 区别
- python copy & deepcopy 区别
- python copy与deepcopy
- Python基础-copy & deepcopy
- 第1136期AI100_机器学习日报(2017-10-28)
- D3 V3 与V4的变化
- 第1134期AI100_机器学习日报(2017-10-26)
- 第1137期AI100_机器学习日报(2017-10-29)
- SQL数据库聚合函数
- Python中“=”、切片、copy和deepcopy
- 最近的状态
- https请求数据,ca机构安全证书
- 模块之内聚性
- 【codevs 1116】四色问题
- 如何通过C#调用OpenCV函数(自制OpenCV的c++ dll文件)
- 软件测试人员必备网络知识(一):什么是cookie?
- 利用每日新闻预测金融市场的变化_版本3
- NOIP 2009 题解+代码