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)

网友评论