2019-03-28 16:21:36 2316瀏覽
今天扣丁學(xué)堂Python培訓(xùn)老師給大家分享一篇關(guān)于python中淺拷貝和深拷貝的區(qū)別,希望對(duì)同門學(xué)習(xí)Python開(kāi)發(fā)有所幫助,下面我們一起來(lái)看一下吧。
import copy list1 = [1,2,3,4] print(id(list1)) list2 = list1.copy() print(list2) print(id(list2)) print(list1 is list2) list3 = copy.deepcopy(list1) print(list3) print(id(list3)) print(list1 is list3) 96011592 [1, 2, 3, 4] 95979528 False [1, 2, 3, 4] 31271112 False
import copy list1 = [1,2,3,4,[5,6]] print('list1的id:',id(list1)) print('list1第4個(gè)元素的id:',id(list1[4])) #淺拷貝 list2 = list1.copy() print(list2) print('list2的id:',id(list2)) print('list2第4個(gè)元素的id:',id(list2[4])) #深拷貝 list3 = copy.deepcopy(list1) print(list3) print('list3的id:',id(list3)) print('list3第4個(gè)元素的id:',id(list3[4])) #改變list1中的元素 list1[2] = 7 list1[4][1] = 8 print('list1:',list1) print('list2:',list2) print('list3:',list3) #運(yùn)行結(jié)果 list1的id: 95979528 list1第4個(gè)元素的id: 96011592 [1, 2, 3, 4, [5, 6]] list2的id: 40773832 list2第4個(gè)元素的id: 96011592 #子對(duì)象的id值一樣,表示淺拷貝沒(méi)有拷貝對(duì)象,只是使用了列表的引用 [1, 2, 3, 4, [5, 6]] list3的id: 96023432 list3第4個(gè)元素的id: 40773704 list1: [1, 2, 7, 4, [5, 8]] list2: [1, 2, 3, 4, [5, 8]] #父對(duì)象不變,子對(duì)象變 list3: [1, 2, 3, 4, [5, 6]] #父子對(duì)象都不改變
【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】 【掃碼進(jìn)入Python全棧開(kāi)發(fā)免費(fèi)公開(kāi)課】
查看更多關(guān)于"Python開(kāi)發(fā)資訊"的相關(guān)文章>