0
点赞
收藏
分享

微信扫一扫

python3浅拷贝与深拷贝的区别和理解


python3浅拷贝与深拷贝的区别和理解

浅拷贝,只对顶层拷贝
深拷贝后,原始对象和拷贝对象所有的元素地址都没有相同的了

参考这里:
​​​ https://www.jianshu.com/p/03dce38cc97e​​

# 深拷贝的会对子元素也进行拷贝
import copy

l1 = [11, 12]
l2 = [21, 22]
num = 555

allOne = [l1, l2,num]
# 浅拷贝,除了顶层拷贝,还对子元素也进行了拷贝(本质上递归浅拷贝)
# 经过深拷贝后,原始对象和拷贝对象所有的元素地址都没有相同的了


print("id allOne:"+str(id(allOne)))
print("拷贝前id allOne[0]:"+str(id(allOne[0])))
print("拷贝前 id allOne[1]:"+str(id(allOne[1])))
print("拷贝前id allOne[2]:"+str(id(allOne[2])))

# allOne2 = copy.deepcopy(allOne) # copy.deepcopy 深拷贝
allOne2 = copy.copy(allOne) # copy.deepcopy 浅拷贝

print("------------------------------")

# allOne[1] = [113,114]
# allOne2[2] = [227,228]

print(allOne)
print(allOne2)

print("id allOne2:"+str(id(allOne2)))
print("拷贝后id allOne2[0]:"+str(id(allOne2[0])))
print("拷贝后id allOne2[1]:"+str(id(allOne2[1])))
print("拷贝后id allOne2[2]:"+str(id(allOne2[2])))

浅拷贝

python3浅拷贝与深拷贝的区别和理解_浅拷贝

深拷贝:

python3浅拷贝与深拷贝的区别和理解_递归_02


举报

相关推荐

0 条评论