在之前示例中,列表中所做的更改在其他列表中不起作用,表示列表已深度复制。
那么接下来,我们来看看什么是浅拷贝。
在浅拷贝的情况下,对象的引用被复制到其他对象中。这意味着对对象副本所做的任何更改都会反映在原始对象中。
在python中,这是使用“copy()”函数实现的。
# Python code to demonstrate copy operations
# importing "copy" for copy operations
import copy
# initializing list 1
li1 = [1, 2, [3,5], 4]
# using copy to shallow copy
li2 = copy.copy(li1)
# original elements of list
print ("The original elements before shallow copying")
for i in range(0,len(li1)):
print (li1[i],end=" ")
print("\r")
# adding and element to new list
li2[2][0] = 7
# checking if change is reflected
print ("The original elements after shallow copying")
for i in range(0,len( li1)):
print (li1[i],end=" ")
在上面的示例中,列表中所做的更改在其他列表中生效,表示列表是浅层复制的。
要点:
浅复制和深复制之间的区别仅与复合对象(包含其他对象的对象,如列表或类实例)相关:
- 浅拷贝构造一个新的复合对象,然后(尽可能)将对它的引用插入到原始对象中。
- 深层复制构造一个新的复合对象,然后递归地将复制插入原始对象中的对象。








暂无数据