Python中复制函数的区别

2024-10-04 01:22:45 发布

您现在位置:Python中文网/ 问答频道 /正文

两者之间有什么区别复制。复制以及复制.deepcopypython中的函数?在

>>> copy.deepcopy(li)
[1, 2, 3, 4]

>>> copy.copy(li)
[1, 2, 3, 4]

两个函数的作用是一样的,有人知道这些函数具体做了什么吗


Tags: 函数licopy区别deepcopydeepcopypython
2条回答

copy.copy执行浅拷贝,而{}执行深层复制。在

当考虑:

li = [1, 2, 3, 4]

您不会注意到任何差异,因为您复制的是不可变对象,但是请考虑:

^{pr2}$

由于浅层副本只复制列表中的每个引用,因此操纵这些复制的引用仍将影响原始列表。在

但是,以下代码:

>>> x.append(1)

对原始列表没有影响。在

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

相关问题 更多 >