python中的深拷贝与浅拷贝解析
来源:互联网 发布:中学生机器人编程 编辑:程序博客网 时间:2024/05/21 06:46
一、赋值,传递对象的引用
>>> a = [1, 2, 3, 4, ['a', 'b']]>>> b = a>>> b is aTrue
b就是a ,两者同步改变
二、浅拷贝
>>> a = [1,2,3,[4,5]]>>> b = list(a)#######或者是b = copy.copy(a)>>> b[1, 2, 3, [4, 5]]>>> a is bFalse>>> b[3][0] = 100#####嵌套的值改变时,影响到原值,两者同步改变>>> b[1, 2, 3, [100, 5]]>>> a[1, 2, 3, [100, 5]]>>> [id(x) for x in a][29982856, 29982844, 29982832, 39308384]>>> [id(x) for x in b][29982856, 29982844, 29982832, 39308384]>>> b[0] = 8#######第一层的值改变时,不影响原值。>>> b[8, 2, 3, [100, 5]]>>> a[1, 2, 3, [100, 5]]
复制了a的引用,只能做到顶层的复制,不能复制嵌套的数据。所以当b的顶层数据改变时,a不变,当嵌套的数据改变时,a也改变。
切片也属于浅拷贝。
三、深拷贝
>>> b = copy.deepcopy(a)>>> b is aFalse>>> b[3][0] = 100>>> a[1, 2, 3, [4, 5]]>>> b[1, 2, 3, [100, 5]]>>> b[0] = 8>>> a[1, 2, 3, [4, 5]]>>> b[8, 2, 3, [100, 5]]>>>
Copy.deepcopy()可以拷贝完整的数据结构,b改变时不影响a
0 0
- python中的深拷贝与浅拷贝解析
- Python中的浅拷贝与深拷贝
- python中的深拷贝与浅拷贝
- Python中的浅拷贝与深拷贝
- Python中的深拷贝与浅拷贝
- python中的深拷贝与浅拷贝
- python 中的拷贝、浅拷贝与深拷贝
- Python中的对象赋值、浅拷贝与深拷贝
- 图解:Python中的:浅拷贝与深拷贝
- python中的引用,深拷贝与浅拷贝
- python中的深拷贝和浅拷贝
- python中的深拷贝和浅拷贝
- python 中的深拷贝和浅拷贝
- python中的赋值、浅拷贝、深拷贝
- python中的深拷贝和浅拷贝
- python中的深拷贝和浅拷贝
- python 中的深拷贝和浅拷贝
- python中的复制 浅拷贝 深拷贝
- 初学者如何理解网络协议(二)
- C语音简单计时器
- EBS默认密码
- Java File类库
- Android:利用Google GeoCoding API替代Geocoder & 解决地址语言问题 (转)
- python中的深拷贝与浅拷贝解析
- Javascript中,多态举例
- Failed to initialize Monitor Thread: Unable to establish loopback connection
- 西部数码 linux主机 wordpress 重写规则httpd.conf
- 黑马程序员_正则表达式
- ASP.NET 2.0 回发或回调参数无效
- RakNet官方文档学习笔记
- rand()与srand()
- [Unity3D]事半功倍:界面插件NGUI的使用教程与实例