python的引用、浅拷贝与深拷贝
来源:互联网 发布:java大数字处理 编辑:程序博客网 时间:2024/05/21 17:09
引用:
a=['a',['n','100']]
b=a
c=b
b[0]='b'(此时a[0]='b',c[0]='b')
浅拷贝:完全切片[:]、list、dict等
a=['a',['n','100']]
b=list(a)
c=list(b)
b[0]='b';c[0]='c';b[1][1]='30'(此时a[1][1]='30',c[1][1]='30')为什么b[0]!=a[0]!=c[0]因为它是字符串(不可变的,拷贝时创建一个新的对象),而b[1]是个列表(可变的,拷贝时将它的引用复制了一下,所以改变里面的元素b[1][0]、b[1][1]会改变共同引用a元素c的c[1][0]、c[1][1]、a[1][0]、a[1][1])
深拷贝:copy.deepcopy()
a=['a',['n','100']]
b=copy.deepcopy(a)
c=copy.deepcopy(a)
此时a,b,c互不影响
原来python处理数据时默认采用的方式是引用,类似于C++里面的int b;int &a=b(a只是b的一个别名)
对于数字、字符串、元组等原子类型就不存在什么浅拷贝、深拷贝了(因为它是新建了一个对象,其id会改变的)
0 0
- python的引用、浅拷贝与深拷贝
- python引用、浅拷贝与深拷贝的实现
- Python的浅拷贝与深拷贝
- Python的深拷贝与浅拷贝
- Python 的深拷贝与浅拷贝
- Python的深拷贝与浅拷贝
- python中的引用,深拷贝与浅拷贝
- python 引用 浅拷贝 深拷贝
- python的引用和浅拷贝和p深拷贝
- 浅拷贝、深拷贝与引用计数
- python3的对象引用、浅拷贝与深拷贝
- python 引用与拷贝
- 由深拷贝与浅拷贝引发的引用计数、写时拷贝技术
- 由深拷贝与浅拷贝引发的引用计数、写时拷贝技术
- python/c++ 深拷贝与浅拷贝
- Python 深拷贝与浅拷贝
- Python中的浅拷贝与深拷贝
- python 浅拷贝与深拷贝
- 多线程之Thread.interrupt()方法使用
- Python中装饰器浅析
- noip式mengbier (noip 2016)
- React组件的生命周期
- unreal4 网络代码分析
- python的引用、浅拷贝与深拷贝
- iOS 获取网络图片的宽高
- libevent 入门教程
- 计算机网络 时延、发送时延、传输时延、处理时延、排队时延、时延带宽积
- Builder(建造者模式)
- 线上应用故障排查之二:高内存占用
- UE4自定义MovementComponent组件
- linux忘记mysql密码
- 一个distinct问题引发的记录