深淺拷貝 知識點補充

2022-05-19 17:22:31 字數 2141 閱讀 9261

深淺拷貝

lst1 = ["

金毛獅王

", "

紫衫龍王

", "

白眉鷹王

", "

青翼蝠王"]

lst2 =lst1

print

(lst1)

print

(lst2)"楊逍

")print

(lst1)

print

(lst2)

結果:[

'金毛獅王

', '

紫衫龍王

', '

白眉鷹王

', '

青翼蝠王

', '楊逍'

]['金毛獅王

', '

紫衫龍王

', '

白眉鷹王

', '

青翼蝠王

', '楊逍'

]dic1 =

dic2 =dic1

print

(dic1)

print

(dic2)

dic1[

'name

'] = "範瑤"

print

(dic1)

print

(dic2)

結果:

對於list, set, dict來說, 直接賦值. 其實是把記憶體位址交給變數. 並不是複製乙份內容. 所以lst1的記憶體指向和lst2是一樣的. lst1改變了, lst2也發生了改變

淺拷貝

lst1 = ["

何炅", "

杜海濤","

周渝民"

]lst2 =lst1.copy()

"李嘉誠")

print

(lst1)

print

(lst2)

print

(id(lst1), id(lst2))

結果:兩個lst完全不一樣. 記憶體位址和內容也不一樣. 發現實現了記憶體的拷貝

lst1 = ["

何炅", "

杜海濤","

周渝民", ["

麻花藤", "

馬芸", "

周筆暢"

]]lst2 =lst1.copy()

無敵是多磨寂寞")

print

(lst1)

print

(lst2)

print(id(lst1[3]), id(lst2[3]))

結果:['何炅

', '

杜海濤', '

周渝民', ['

麻花藤', '

馬芸', '

周筆暢', '

無敵是多磨寂寞']]

['何炅', '

杜海濤', '

周渝民', ['

麻花藤', '

馬芸', '

周筆暢', '

無敵是多磨寂寞']]

4417248328 4417248328

淺拷貝. 只會拷貝第一層. 第二層的內容不會拷貝. 所以被稱為淺拷貝

深拷貝

import

copy

lst1 = ["

何炅", "

杜海濤","

周渝民", ["

麻花藤", "

馬芸", "

周筆暢"

]]lst2 =copy.deepcopy(lst1)

無敵是多磨寂寞")

print

(lst1)

print

(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...