python中的copy.copy和copy.deepcopy函数之间有什么区别?>>> copy.deepcopy(li)[1, 2, 3, 4]>>> copy.copy(li)[1, 2, 3, 4]两者都做同样的事情,谁能告诉他们这些功能具体是做什么的
2 回答
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
>>> import copy
>>> L = [[1,2,3]]
>>> A = copy.copy(L)
>>> A[0].append(4)
>>> A
[[1, 2, 3, 4]]
>>> L
[[1, 2, 3, 4]]
>>> L = [[1,2,3]]
>>> A = copy.deepcopy(L)
>>> A[0].append(4)
>>> A
[[1, 2, 3, 4]]
>>> L
[[1, 2, 3]]
智慧大石
TA贡献1946条经验 获得超3个赞
copy.copy与copy.deepcopy执行深层复制相反,执行浅层复制。
在考虑时:
li = [1, 2, 3, 4]
您不会注意到任何区别,因为您正在复制不可变的对象,但是请考虑:
>>> import copy
>>> x = copy.copy(li)
>>> x
[[1, 2], [3, 4]]
>>> x[0][0] = 9
>>> li
[[9, 2], [3, 4]]
由于浅表副本仅复制列表中每个引用的副本,因此操作这些复制的引用仍会影响原始列表。
但是下面的代码:
>>> x.append(1)
将不会对原始列表产生影响。
添加回答
举报
0/150
提交
取消