1. 程式人生 > >關於Python的深淺拷貝

關於Python的深淺拷貝

pos 技術分享 blog epc deepcopy 關於 pan com pyo

關於Python的深淺拷貝

 1 import copy
 2 
 3 # 淺拷貝 只拷貝第一層,後面層的數據會變是因為指針跟著改變了
 4 copyone = ["walk", 28, [4300, 5000]]
 5 cp1 = copyone.copy()
 6 cp1[0] = on_foot
 7 cp1[1] = 29
 8 cp1[2][0] = 9300
 9 print("列表copyone: %s"%copyone)  # 淺拷貝後,原數據中的4300已變成9300
10 print("淺拷貝效果: %s"%cp1)
11 
12 #深拷貝 即完全拷貝
13 copyone = ["walk
", 28, [4300, 5000]] 14 cp2 = copy.deepcopy(copyone) 15 cp2[0] = on_foot 16 cp2[1] = 29 17 cp2[2][0] = 9300 18 print("列表copyone: %s"%copyone) # 深拷貝後,原列表數據無變化 19 print("淺拷貝效果: %s"%cp2)

執行效果如下:

列表copyone: [‘walk‘, 28, [9300, 5000]]
淺拷貝效果: [‘on_foot‘, ‘29‘, [9300, 5000]]
列表copyone: [‘walk‘, 28, [4300, 5000]]
淺拷貝效果: [‘on_foot‘, ‘29‘, [9300, 5000]]

技術分享圖片

深淺拷貝可能這樣描述還是不大清晰。但是自己已經明白了。

關於Python的深淺拷貝