深浅copy
浅拷贝是指把存放变量的地址值传给被赋值,最后两个变量引用了同一份地址
l1 = [1,2,3,[11,22,33]]
l2 = l1.copy()
print(l2) #[1,2,3,[11,22,33]]
l2[3][2]='aaa'
print(l1) #[1, 2, 3, [11, 22, 'aaa']]
print(l2) #[1, 2, 3, [11, 22, 'aaa']]
l1[0]= 0
print(l1) #[0, 2, 3, [11, 22, 'aaa']]
print(l2) #[1, 2, 3, [11, 22, 'aaa']]
print(id(l1)==id(l2)) #Flase
深拷贝是指被赋值的变量开辟了另一块地址用来存放要赋值的变量的值(内容)。在python中引用copy模块,copy模块中有deepcopy()方法,调用它完成变量的深copy
import
copy
l1
=
[
1
,
2
,
3
, [
11
,
22
,
33
]]
# l2 = copy.copy(l1) 浅拷贝
l2
=
copy.deepcopy(l1)
print
(l1,
'>>>'
,l2)
l2[
3
][
0
]
=
1111
print
(l1,
">>>"
,l2)