关于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]被拷贝到了另外的地址,其他元素依然引用源列表的地址,但在此基础上可以修改,却不改变源列表。

posted @ 2023-02-17 17:15  海_纳百川  阅读(10)  评论(0编辑  收藏  举报
本站总访问量