詹惠儿

2018-12-19   阅读量: 650

数据分析师 Python数据分析

如何理解浅拷贝/复制?

扫码加入数据分析学习群

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

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

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

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

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

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

  • 浅拷贝构造一个新的复合对象,然后(尽可能)将对它的引用插入到原始对象中。
  • 深层复制构造一个新的复合对象,然后递归地将复制插入原始对象中的对象。
添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
0.0000 0 1 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子