da=
dac=da
dct[
'test']=
2print
(dac)
print
(da)
輸出:22
改動的是dac,但是da也跟著改變。
字典da 是乙個object ,python 為提高效能,優化記憶體,dac=da並沒有真正的將該字典在記憶體中再次建立,只是指向了相同的object。如下:
da=l=[
]for i in
range(5
):da[
"name"]=i
print l
輸出:[, , , , ]
da=l=[
]for i in
range(5
):dac = dac.cpoy(
) dac[
"name"]=i
print l
輸出:[, , , , ]
a=
b=a.copy()b[
'q']=2
b['w'
]123
)print a
print b
a中』q』的值不會變化但是其列表中的值還是發生了改變
copy.copy 淺拷貝 只拷貝父物件,不會拷貝物件的內部的子物件。
copy.deepcopy 深拷貝 拷貝物件及其子物件
a=
b=a.copy()b[
'q']=2
b['w']=
[123
]print a
print b
直接賦值的話,則不會改變a中的結構
import copy
a=b=copy.deepcopy(a)
b['q']=
2b['w']=[
123]
print a
print b
使用deepcopy()深層次的copy Python中append和extend的區別
網上有很多對這兩個函式的區別講解,但我覺得都講的不是很清楚,記憶不深刻。這樣解釋清楚且容易記住。1 2 3 4 5 music media compact disc 8 track tape long playing record new media audio disc super audio c...
Python中append和extend的區別
編者注 本文主要參考了 python核心程式設計 第二版 網上有很多對這兩個函式的區別講解,但我覺得都講的不是很清楚,記憶不深刻。這樣解釋清楚且容易記住。1 2 3 4 5 music media compact disc 8 track tape long playing record new m...
Python中append和extend的區別
網上有很多對這兩個函式的區別講解,但我覺得都講的不是很清楚,記憶不深刻。這樣解釋清楚且容易記住。music media compact disc 8 track tape long playing record new media audio disc super audio cd print mu...