補充 python深淺copy

2021-09-25 09:56:14 字數 766 閱讀 4891

name = ["liming","lilongfei","duanwenchao",["tangeng",11],"yuxiaobin"]

name2 = name.copy() #淺copy,只copy第一層

print(name)

print(name2)

name[1] = "haha" #當修改name的第一層時,name2不發生變化

name[3][1] = 22 #當修改name的第二層時,name2的第二層也發生相應的變化,原因是因為淺copy在copy第二層時,只是copy了他的記憶體位址

print(name)

print(name2)

#淺copy第二種

import copy

name = ["liming","lilongfei","duanwenchao",["tangeng",11],"yuxiaobin"]

name2 = copy.copy(name)

#淺copy第三種

name2 = name[:]

#淺copy第四種

name2 = list(name)

#深copy,相當於做了複製,可以任意修改,不會影響其他副本

import copy

name = ["liming","lilongfei","duanwenchao",["tangeng",11],"yuxiaobin"]

name2 = copy.deepcopy(name)

python 深淺copy總結

總結 總結 假設l1為原資料,l2為deepcopy後的資料 1.淺copy,只能改變第一層的記憶體位址 不可變資料型別除外 2.深copy,能夠改變第一層和第二層的記憶體位址 不可變資料型別除外 3.不可變型別,位址不會發生變化,且不可使用copy 可以使用copy.deepcopy 4.對dee...

Python賦值 深淺copy

在 python 中,物件的賦值就是簡單的物件引用,這點和 c 不同,如下所示 a 1,2,hello python c b a在上述情況下,a 和 b 是一樣的,他們指向同一片記憶體,b 不過是 a 的別名,是引用.我們可以使用 b is a 去判斷,返回 true,表明他們位址相同,內容相同,也...

Python中的深淺copy

在python中的深淺copy和其他語言中的不同,在c語言中,只要位址發生變化的都是深copy,位址不發生變化的都是淺copy。但是在python中卻不一樣,在python中分兩種情況來解釋深淺copy。第一種情況,當列表中不存在其他其他列表元素的時候,這個時候深copy和淺copy是相同的,都是建...