赋值:修改原列表会影响赋值列表
浅拷贝:只拷贝列表的最外层,内部全部引用,修改最外层列表,不会影响,修改内层对象会影响浅拷贝对象。
深拷贝:拷贝所有可变类型,原列表 不影响深拷贝对象
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)