Python中的深拷贝与浅拷贝
来源:互联网 发布:misumi软件 编辑:程序博客网 时间:2024/06/05 16:43
深拷贝与浅拷贝
- 深拷贝会拷贝源对象(拷贝后,二者从此无关系)
- 浅拷贝会新建一个对象,指向源对象。源对象变,拷贝的对象也会变(二者id值不同,但是指向的区域相同。相当于新建了一个指针)
- 如果浅拷贝的是列表。分为列表元素是可变对象和不可变对象两种情况:
不可变对象
#coding:utf-8s3 = [1,'hello',[1,2]]s4 = s3[:]s5 = list(s3)print id(3),id(4),id(5)'浅拷贝后更新不可变对象的值's3[0] = 0print s3print s4print s5
输出44333256 44333244 44333232[0, 'hello', [1, 2]][1, 'hello', [1, 2]][1, 'hello', [1, 2]]
可变对象
#浅拷贝后更新可变对象的值s5[2][1]='keek'prints3prints4print s5
输出[0, 'hello', [1, 'keek']][1, 'hello', [1, 'keek']][1, 'hello', [1, 'keek']]
要想复制时新建对象,可以使用下面几个方法
- 切片
s2 = s1[:]
- 工厂方法(工厂函数,list(),dict()等)
s2 = list(s1)
- 使用copy模块中的copy函数
import copys2 = copy.copy(s1)#浅拷贝s2 = copy.deepcopy(s1)
阅读全文
0 0
- Python中的浅拷贝与深拷贝
- python中的深拷贝与浅拷贝
- Python中的浅拷贝与深拷贝
- Python中的深拷贝与浅拷贝
- python中的深拷贝与浅拷贝
- python 中的拷贝、浅拷贝与深拷贝
- python中的深拷贝与浅拷贝解析
- Python中的对象赋值、浅拷贝与深拷贝
- 图解:Python中的:浅拷贝与深拷贝
- python中的引用,深拷贝与浅拷贝
- python中的深拷贝和浅拷贝
- python中的深拷贝和浅拷贝
- python 中的深拷贝和浅拷贝
- python中的赋值、浅拷贝、深拷贝
- python中的深拷贝和浅拷贝
- python中的深拷贝和浅拷贝
- python 中的深拷贝和浅拷贝
- python中的复制 浅拷贝 深拷贝
- Android下文件的压缩和解压(Zip格式)
- HTTP和HTTPS的区别
- JAVA设计模式之单例模式
- Glide生命周期管理
- 希尔排序
- Python中的深拷贝与浅拷贝
- 19、oracle:关键字exists
- UVa -- 10635 Prince and Princess 【想法】
- 微信小程序多层嵌套循环,二级数组遍历
- LeetCode 152. Maximum Product Subarray--连续子数组最大乘积
- 关于NSTimer的简单应用
- Mac 随机抽取文件N行数据
- 微信H5支付
- hdu6165 FFF at Valentine 强联通缩点