python開發之路---第二天筆記
阿新 • • 發佈:2019-01-05
深淺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)