美文网首页
python中,赋值,浅拷贝,深拷贝的区别

python中,赋值,浅拷贝,深拷贝的区别

作者: 卅清 | 来源:发表于2020-04-19 18:18 被阅读0次

import copy

ls = ['d','f','a',[1,2,3]]

ll = ls# 赋值,仍然指向同一个地址,操作ll增删改查后,打印ls,结果与ll一样。

l_copy = copy.copy(ls)# 浅拷贝,l_copy重新指向了一个地址,但l_copy中嵌套的列表的指向仍然与ls嵌套中列表指向地址一样,所以对嵌套表进行操作时,浅拷贝和原表都会发生改变

l_deep_copy = copy.deepcopy(ls)# 深拷贝,l_deep_copy重新指向了一个地址,包括l_deep_copy中嵌套的列表。互不影响

print(id(ls))

print(id(ll))

print(id(l_copy))

print(id(l_deep_copy))

print("列表中嵌套的列表[1,2,3]指向")

print(id(ll[3]))

print(id(l_copy[3]))

print(id(l_deep_copy[3]))

l_copy[3].append(4444)

print(ll)

print(ls)

print(l_copy)

print(l_deep_copy)

相关文章

网友评论

      本文标题:python中,赋值,浅拷贝,深拷贝的区别

      本文链接:https://www.haomeiwen.com/subject/pftbbhtx.html