为了账号安全,请及时绑定邮箱和手机立即绑定

python中复制函数之间的区别

python中复制函数之间的区别

收到一只叮咚 2021-03-05 11:07:58
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]]


查看完整回答
反对 回复 2021-03-29
?
智慧大石

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)

将不会对原始列表产生影响。


查看完整回答
反对 回复 2021-03-29
  • 2 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信