列表(三)-深浅拷贝

赋值:修改原列表会影响赋值列表

浅拷贝:只拷贝列表的最外层,内部全部引用,修改最外层列表,不会影响,修改内层对象会影响浅拷贝对象。

深拷贝:拷贝所有可变类型,原列表 不影响深拷贝对象

l1 = [1,2,3,[4,5]]
print(id(l1))

# 赋值操作:改变其中一个,会影响另一个变量
l2 = l1

# 浅拷贝
l3 = l1.copy()

# 深拷贝
import copy
l4 = copy.deepcopy(l1)


l1.append(6)
print(l1)   # [1,2,3,[4,5],6]
print(l2)   # [1,2,3,[4,5],6]
print(l3)  #  [1,2,3,[4,5]]
print(l4)  #  [1,2,3,[4,5]]

l1[3].append(6)

print(l1)  # [1,2,3,[4,5,6]]
print(l2)  # [1,2,3,[4,5,6]]
print(l3) # [1,2,3,[4,5,6]]
print(l4)  # [1,2,3,[4,5]]

图解


赋值: l1.append(6)

赋值:l1[3].append(6)

浅拷贝: l1.append(6)

浅拷贝:l1[3].append(6)

深拷贝 : l1.append(6)

深拷贝:l1[3].append(6)

原文地址:https://www.cnblogs.com/duxiangjie/p/14063109.html