1. 程式人生 > >python基礎之淺復制與深復制

python基礎之淺復制與深復制

完全 tee val 直接 2層 關於 mes 方式 pan

關於列表、字典、元組的淺復制和深復制,數字和字符串沒有淺復制和深復制一說。下面我直接用代碼來體現:

 1 import copy
 2 
 3 names = [Cahill,Teenglan,Eric,Peggie,Aalto,Baal,Sadie,
 4          Gage,Hagan,Jack,Kaley,Mabel,Lacy,Nadine,Pace,Amy]
 5 
 6 #淺復制
 7 names2 = names.copy()
 8 names2[1] = "修改了"
 9 print(names)
10 #[‘Cahill‘, ‘Teenglan‘, ‘Eric‘, ‘Peggie‘, ‘Aalto‘, ‘Baal‘, ‘Sadie‘,
11 # ‘Gage‘, ‘Hagan‘, ‘Jack‘, ‘Kaley‘, ‘Mabel‘, ‘Lacy‘, ‘Nadine‘, ‘Pace‘, ‘Amy‘] 12 print(names2) 13 #[‘Cahill‘, ‘修改了‘, ‘Eric‘, ‘Peggie‘, ‘Aalto‘, ‘Baal‘, ‘Sadie‘, 14 # ‘Gage‘, ‘Hagan‘, ‘Jack‘, ‘Kaley‘, ‘Mabel‘, ‘Lacy‘, ‘Nadine‘, ‘Pace‘, ‘Amy‘] 15 print("") 16 17 18 print("----------------修改第一層-----------------------------
") 19 names3 = [Cahill,Peggie,[Ursula,Val,[Zena,Babb,Eric],Teenglan,],Amy] 20 names4 = names3.copy() 21 names3[1] = "修改第一層" 22 print(names3) 23 #[‘Cahill‘, ‘修改第一層‘, [‘Ursula‘, ‘Val‘, [‘Zena‘, ‘Babb‘, ‘Eric‘], ‘Teenglan‘], ‘Amy‘] 24 print(names4) 25 #[‘Cahill‘, ‘Peggie‘, [‘Ursula‘, ‘Val‘, [‘Zena‘, ‘Babb‘, ‘Eric‘], ‘Teenglan‘], ‘Amy‘]
26 27 28 print("") 29 print("-----------------修改第二層-------------------------------") 30 names3[2][1] = "修改第二層" 31 print(names3) 32 #[‘Cahill‘, ‘修改第一層‘, [‘Ursula‘, ‘修改第二層‘, [‘Zena‘, ‘Babb‘, ‘Eric‘], ‘Teenglan‘], ‘Amy‘] 33 print(names4) 34 #[‘Cahill‘, ‘Peggie‘, [‘Ursula‘, ‘修改第二層‘, [‘Zena‘, ‘Babb‘, ‘Eric‘], ‘Teenglan‘], ‘Amy‘] 35 36 37 print("") 38 print("----------------------修改第三層-----------------------------------") 39 names3[2][2][0] = "修改第三層" 40 print(names3) 41 print(names4) 42 #淺復制只復制了第一層,從第二層開始只復制其快捷方式(即改動原文件,復制的跟著改動)。 43 44 45 print("") 46 print("------------------------------深復制------------------------------") 47 namett = [Cahill,Peggie,[Ursula,Val,[Zena,Babb,Eric],Teenglan,],Amy] 48 namett2 = copy.deepcopy(namett) 49 50 print("") 51 print("--------------------------------復制第1層------------------------------------") 52 namett[0] = "復制第1層" 53 print(namett) 54 print(namett2) 55 56 print("") 57 print("--------------------------------復制第2層------------------------------------") 58 namett[2][0] = "復制第2層" 59 print(namett) 60 print(namett2) 61 62 63 print("") 64 print("--------------------------------復制第3層------------------------------------") 65 namett[2][2][0] = "復制第3層" 66 print(namett) 67 print(namett2) 68 #深復制:完全的多層復制

python基礎之淺復制與深復制