模块名:copy
隶属于:python标准库
py版本:1.4及以后
包含函数:copy()和deepcopy()
用 途:复制现有的对象
1、copy()--- 浅拷贝
其中填充原对象的引用,建立list对象的一个浅拷贝副本时,会构造一个新的list,并将原对象的元素追加到这个list。
deepcopy()--- 深拷贝
其中填充原对象的浅拷贝副本,对list对象进行深拷贝,会copy原列表中的元素,然后将副本添加到新列表
2、一句话区别:
浅拷贝只拷贝父对象,不会拷贝对象内部的子对象;
深拷贝会同时拷贝父对象及其子对象。
#导入copy模块 >>> import copy #list a >>> a = [1, 2, 3, 4, ['a', 'b']] #list b:将a赋值给b(传对象的引用) >>> b = a #list c:将a浅拷贝给c >>> c = copy.copy(a) #list d: 将a深拷贝给d >>> d = copy.deepcopy(a) #对list a追加元素 5 >>> a.append(5) #对list a的子元素a[4]即['a','b']追加'c' >>> a[4].append("c") #操作完之后的list a、b、c、d分别为: >>> a [1, 2, 3, 4, ['a', 'b', 'c'], 5] >>> b [1, 2, 3, 4, ['a', 'b', 'c'], 5] >>> c [1, 2, 3, 4, ['a', 'b', 'c']] >>> d [1, 2, 3, 4, ['a', 'b']] >>> #个人理解:拷贝越深,新产生的对象独立性越强,即受原对象改变的影响越小