總結:
'''總結:假設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("第一層
位址變化")
(id(l1))
(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("第一
層位址變化")
(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是相同的,都是建...