深淺拷貝
lst1 = ["金毛獅王
", "
紫衫龍王
", "
白眉鷹王
", "
青翼蝠王"]
lst2 =lst1
(lst1)
(lst2)"楊逍
(lst1)
(lst2)
結果:[
'金毛獅王
', '
紫衫龍王
', '
白眉鷹王
', '
青翼蝠王
', '楊逍'
]['金毛獅王
', '
紫衫龍王
', '
白眉鷹王
', '
青翼蝠王
', '楊逍'
]dic1 =
dic2 =dic1
(dic1)
(dic2)
dic1[
'name
'] = "範瑤"
(dic1)
(dic2)
結果:
對於list, set, dict來說, 直接賦值. 其實是把記憶體位址交給變數. 並不是複製乙份內容. 所以lst1的記憶體指向和lst2是一樣的. lst1改變了, lst2也發生了改變
淺拷貝
lst1 = ["何炅", "
杜海濤","
周渝民"
]lst2 =lst1.copy()
"李嘉誠")
(lst1)
(lst2)
(id(lst1), id(lst2))
結果:兩個lst完全不一樣. 記憶體位址和內容也不一樣. 發現實現了記憶體的拷貝
lst1 = ["
何炅", "
杜海濤","
周渝民", ["
麻花藤", "
馬芸", "
周筆暢"
]]lst2 =lst1.copy()
無敵是多磨寂寞")
(lst1)
(lst2)
print(id(lst1[3]), id(lst2[3]))
結果:['何炅
', '
杜海濤', '
周渝民', ['
麻花藤', '
馬芸', '
周筆暢', '
無敵是多磨寂寞']]
['何炅', '
杜海濤', '
周渝民', ['
麻花藤', '
馬芸', '
周筆暢', '
無敵是多磨寂寞']]
4417248328 4417248328
淺拷貝. 只會拷貝第一層. 第二層的內容不會拷貝. 所以被稱為淺拷貝
深拷貝
importcopy
lst1 = ["
何炅", "
杜海濤","
周渝民", ["
麻花藤", "
馬芸", "
周筆暢"
]]lst2 =copy.deepcopy(lst1)
無敵是多磨寂寞")
(lst1)
(lst2)
print(id(lst1[3]), id(lst2[3]))
結果:['何炅
', '
杜海濤', '
周渝民', ['
麻花藤', '
馬芸', '
周筆暢', '
無敵是多磨寂寞']]
['何炅', '
杜海濤', '
周渝民', ['
麻花藤', '
馬芸', '
周筆暢'
]]4447221448 4447233800
都不一樣了. 深度拷貝. 把元素內部的元素完全進行拷貝複製. 不會產生乙個改變另乙個跟著改變的問題
Python 深淺拷貝的知識點
1.拷貝的定義 1.1.拷貝的類屬 拷貝的本質 1.2 拷貝的差異 拷貝的型別 2.拷貝的本質 2.1.建立乙個新的物件 2.2.對這個新的物件賦值 3.拷貝的型別 3.1深拷貝 定義 深拷貝會構造乙個新的物件,然後遞迴地將原始物件中所找到的物件的副本插入 3.2淺拷貝 定義 淺拷貝是建立乙個新的物...
js基礎知識點,深淺拷貝,
1.布林值中 undefined null nan 無內容字串 0 false顯示出false。2.與運算子中,由左至右判斷,當為假時直接輸出第乙個值,為真時判斷下乙個,全真才為真。全假才為假 var a 0 2 document.write a 輸出顯示為 0 var a 1 2 4 docume...
正則知識點補充
1.與正規表示式有關的字串物件的方法 string.replace pattern,string 替換在正規表示式查詢中找到的文字。string.search pattern 通過正規表示式查詢相應的字串,只是判斷有無匹配的字串。如果查詢成功,search 返回匹配串的位置,否則返回 1。strin...