关于python深拷贝和浅拷贝的最容易解释--直接上代码
浅拷贝:赋值,或者copy
深拷贝:copy.deepcopy()
import copy A = [0,1,2,[3,4,5],6,7,8] A1 = A #1、浅拷贝 #A1 = copy.copy(A) #2、copy浅拷贝 #A1 = copy.deepcopy(A) #3、深拷贝 print('源列表: %s' %A) print('拷贝列表: %s' %A1) A1.append(9) print('A1添加元素后的A列表:%s'%A) print('A1添加元素后的A1列表:%s'%A1) A1[3].append(9) print('A1的子对象添加元素后的A列表:%s'%A) print('A1的子元素添加元素后的A1列表:%s'%A1)
结果:
赋值浅拷贝:
结果可以看出:浅拷贝后,A和A1同步变化。
copy浅拷贝:
结果可以看到:copy浅拷贝之后,只有A和A1的子对象[3,4,5,9]同步变化。
deepcopy深拷贝:
结果可以看到:A和A1不同步变化。
深拷贝为例,了解拷贝原理:
A1对A深拷贝之后,A1中的子对象[3,4,5]被拷贝到了另外的地址,其他元素依然引用源列表的地址,但在此基础上可以修改,却不改变源列表。
本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/17130912.html,如有侵权联系删除