猿问

python中复制函数之间的区别

python中的copy.copy和copy.deepcopy函数之间有什么区别?


>>> copy.deepcopy(li)

[1, 2, 3, 4]


>>> copy.copy(li)

[1, 2, 3, 4]

两者都做同样的事情,谁能告诉他们这些功能具体是做什么的


收到一只叮咚
浏览 166回答 2
2回答

慕盖茨4494581

>>> 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]]

智慧大石

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)将不会对原始列表产生影响。
随时随地看视频慕课网APP

相关分类

Python
我要回答