热线电话:13121318867

登录
2018-12-19 阅读量: 839
如何理解浅拷贝/复制?

在之前示例中,列表中所做的更改在其他列表中不起作用,表示列表已深度复制。

那么接下来,我们来看看什么是浅拷贝。

在浅拷贝的情况下,对象的引用被复制到其他对象中。这意味着对对象副本所做的任何更改都会反映在原始对象中。

在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=" ")

在上面的示例中,列表中所做的更改在其他列表中生效,表示列表是浅层复制的。

要点:
浅复制和深复制之间的区别仅与复合对象(包含其他对象的对象,如列表或类实例)相关:

  • 浅拷贝构造一个新的复合对象,然后(尽可能)将对它的引用插入到原始对象中。
  • 深层复制构造一个新的复合对象,然后递归地将复制插入原始对象中的对象。
0.0000
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子