1. 程式人生 > >Python —— 淺拷貝 、仿深拷貝 與 深拷貝

Python —— 淺拷貝 、仿深拷貝 與 深拷貝

(1)淺拷貝:同一個記憶體地址,擁有不同的變數名稱。(兩個變數不管更改哪一個,更改的第幾層,只要有一個變,就都變)
在這裡插入圖片描述

(2)深拷貝:初始資料一致,記憶體地址不一致(兩者相互獨立,更改哪一個,或哪一個的哪一層,都與另一個無關)
在這裡插入圖片描述

(3)仿深拷貝(第一層建立的是新的記憶體。從第二層開始,指向的是同一個記憶體地址,所以,對於第二層以及更深的層來說,保持一致性)
即:對於仿深拷貝,第一層是獨立的。從第二層開始,都是公用的,給一個,兩個都會變
在這裡插入圖片描述

總結:
(1)淺拷貝 用“=” 進行淺拷貝 拷貝後的兩個變數,不管改變哪一個,另一個都都會改變
(2)仿深拷貝 用copy 進行拷貝(導包:from copy import copy) 拷貝後有兩種情況:
a情況:改變的是第一層,則改變的變數,只改變自身,另一個變數不變,兩者相互獨立
b情況:改變的是第二層 或 更多層 ,則兩者相互關聯,一起改變
(3)深拷貝 用deepcopy 進行拷貝(導包:from copy import deepcopy),兩者相互獨立,不論哪個變數改變,都不影響另一個變數