python学习笔记:深拷贝,浅拷贝
2015-03-05 00:00
447 查看
摘要: 深拷贝
浅拷贝
引用模块 copy
总结:
浅拷贝只拷贝父对象,不拷贝子对象。
深拷贝拷贝父对象和子对象。
浅拷贝
引用模块 copy
import copy
>>> a=[1,2,3,['a','b','c']] >>> b=a >>> a [1, 2, 3, ['a', 'b', 'c']] >>> b [1, 2, 3, ['a', 'b', 'c']] #在a后加元素4 >>> a.append(4) >>> a [1, 2, 3, ['a', 'b', 'c'], 4] >>> b [1, 2, 3, ['a', 'b', 'c'], 4] #进行a的浅拷贝,拷贝结果为c >>> c = copy.copy(a) >>> c [1, 2, 3, ['a', 'b', 'c'], 4] #给a后加元素‘5’ >>> a.append('5') >>> a [1, 2, 3, ['a', 'b', 'c'], 4, '5'] >>> b [1, 2, 3, ['a', 'b', 'c'], 4, '5'] >>> c [1, 2, 3, ['a', 'b', 'c'], 4]#发现c没有增加元素‘5’ #给a的元素3加元素‘d’ >>> a[3].append('d') >>> a [1, 2, 3, ['a', 'b', 'c', 'd'], 4, '5'] >>> b [1, 2, 3, ['a', 'b', 'c', 'd'], 4, '5'] >>> c [1, 2, 3, ['a', 'b', 'c', 'd'], 4]#发现c[3]增加了元素'd' #进行a的深拷贝,拷贝结果为d >>> d = copy.deepcopy(a) >>> a [1, 2, 3, ['a', 'b', 'c', 'd'], 4, '5'] >>> b [1, 2, 3, ['a', 'b', 'c', 'd'], 4, '5'] >>> c [1, 2, 3, ['a', 'b', 'c', 'd'], 4] >>> d [1, 2, 3, ['a', 'b', 'c', 'd'], 4, '5'] #给a后加元素‘6’ >>> a.append('6') >>> a [1, 2, 3, ['a', 'b', 'c', 'd'], 4, '5', '6'] >>> b [1, 2, 3, ['a', 'b', 'c', 'd'], 4, '5', '6'] >>> c [1, 2, 3, ['a', 'b', 'c', 'd'], 4] >>> d [1, 2, 3, ['a', 'b', 'c', 'd'], 4, '5']#浅拷贝c和深拷贝d都没有增加元素['6'] #给a[3]元素增加元素'e' >>> a[3].append('e') >>> a [1, 2, 3, ['a', 'b', 'c', 'd', 'e'], 4, '5', '6'] >>> b [1, 2, 3, ['a', 'b', 'c', 'd', 'e'], 4, '5', '6'] >>> c [1, 2, 3, ['a', 'b', 'c', 'd', 'e'], 4] >>> d [1, 2, 3, ['a', 'b', 'c', 'd'], 4, '5']#浅拷贝增加了元素'e',深拷贝没有增加元素'e'。
总结:
浅拷贝只拷贝父对象,不拷贝子对象。
深拷贝拷贝父对象和子对象。
相关文章推荐
- Python学习笔记——可变类型&不可变类型&深拷贝&浅拷贝
- 流畅的python学习笔记第八章:深拷贝,浅拷贝,可变参数
- Python学习笔记之拷贝
- Python学习笔记(5):赋值、浅拷贝、深拷贝
- 我的Python学习笔记(二):浅拷贝和深拷贝
- python学习笔记——浅拷贝与深拷贝
- Python学习笔记摘要(一)类型 字符串 函数 列表 深浅拷贝
- python学习笔记七:浅拷贝深拷贝
- Python学习笔记【引用VS拷贝】
- python学习笔记(五)深拷贝浅拷贝,文件和目录
- python学习笔记:深浅拷贝的使用和原理
- Python学习笔记_浅拷贝,深拷贝
- python学习笔记-Day02 -第三部分 浅拷贝和深拷贝
- Python学习笔记——深拷贝与浅拷贝
- 我的Python学习笔记(二):浅拷贝和深拷贝
- Python 学习笔记(1)
- python学习笔记,整形,字符串
- python基础学习笔记分享版(1)
- Python 学习笔记 - 2.自省
- Python学习笔记1