python 深淺copy總結

2022-06-19 16:21:12 字數 846 閱讀 3261

總結:

'''

總結:假設l1為原資料,l2為deepcopy後的資料:

1.淺copy,只能改變第一層的記憶體位址(不可變資料型別除外)。

2.深copy,能夠改變第一層和第二層的記憶體位址(不可變資料型別除外)。

3.不可變型別,位址不會發生變化,且不可使用copy ,可以使用copy.deepcopy()。

4.對deepcopy後的l1或l2資料修改時,l1和l2的記憶體位址都會發生變化,但l1和l2的資料不會相互干擾。

'''import

copy

l1=[,(1,2,3)]

l2=copy.deepcopy(l1)

#l2=l1.copy()

print("第一層

位址變化")

print

(id(l1))

print

(id(l2))

print('第三層

字典變化')

print(id(l1[0]['

name

']))

print(id(l2[0]['

name

']))

print('第二層

元祖變化')

print(id(l1[1]))

print(id(l2[1]))

l3=(1,2,3)

#l4=copy.deepcopy(l3)

l4=l3.copy()

print("第一

層位址變化")

print

(id(l3))

print(id(l4))

總結:經驗固然可貴,但唯有實踐出真知。

補充 python深淺copy

name liming lilongfei duanwenchao tangeng 11 yuxiaobin name2 name.copy 淺copy,只copy第一層 print name print name2 name 1 haha 當修改name的第一層時,name2不發生變化 name ...

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是相同的,都是建...