直接上**:
import
copy
name=['hubery','alex',[1
,2,3
,4],2
,1,1,'analic','feancy']
name2=name
name3=name.copy()#或者copy.copy(name)
name4=copy.deepcopy(name)
(3333)
(4444)
print(name)
print(name2)
print(name3)
print(name4)
輸出結果:
['hubery', 'alex', [1,2,3,4,4444],2,1,1, 'analic', 'feancy',3333]
['hubery', 'alex', [1,2,3,4,4444],2,1,1, 'analic', 'feancy',3333]
['hubery', 'alex', [1,2,3,4,4444],2,1,1, 'analic', 'feancy']
['hubery', 'alex', [1,2,3,4],2,1,1, 'analic', 'feancy']
說明「=」引用的是列表的位址;而copy是淺複製,更改源子列表中的內容的時,copy源列表的列表中的子列表的內容也會更改;deepcopy是深複製,不會出現上述情況 深拷貝deepcopy 淺拷貝copy的區別
python中的深淺拷貝是拷貝這個物件的引用,淺拷貝會建立新物件,是複製原物件的第一層引用,舉個例 如果列表中巢狀列表,如果改變巢狀列表中元素的值,淺拷貝的新物件中相對應的元素值會隨之改變 深拷貝拷貝物件的所有元素,包括多層巢狀的元素,建立乙個新的空間,新的記憶體位址,因此在時間的開銷上要高於淺拷貝...
deepcopy引起的LUA記憶體洩露的問題
網路遊戲專案中,lua引起的記憶體洩露的一次事故。在用lua的時候,某種情況下,很多同學都喜歡把物件拿來深度拷貝,雖然我是不太喜歡這麼幹,但專案組開發的同學比較多,也難免別人不會這麼幹。當乙個table裡存在交叉引用的時候,用deepcopy就會出現嚴重的記憶體洩露,實際證明,deepcopy並不會...
copy模組中的copy與deepcopy的區別
每空閒下來,就覺得以前寫的部落格很low.也許現在也很low 好吧就當公升級版的low吧 如果要了解copy與deepcopy的區別,就需要了解python的儲存機制 python在賦值會在記憶體裡開闢乙個空間來存放值這就叫 記憶體位址 同時會開闢乙個空間來存放名字叫命名,在資料相同長度在一定範圍 ...