複製
python中複製有三種
引用淺複製
深複製
引用引用操作是用『=』來賦值,兩個變數使用同一塊位址區域,使用相同的資料
**測試
a = np.arange(12)
b = a
print(b is a)
b.shape = 3,4
print(a.shape)
print(id(a))
print(id(b))
結果如下true
(3, 4)
2772596221712
2772596221712
淺複製
淺複製使用view方法,兩個變數使用不同的位址區域,使用相同的資料
**測試
c = a.view()
print(c is a)
c.shape = 4,3
c[3,2] = 324
print(a.shape)
print(id(a))
print(id(c))
print(a)
結果如下false
(3, 4)
2772596221712
2772626268768
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 324]]
深複製
深複製使用copy方法,兩個變數使用不同的位址區域,使用不同的資料
**測試
d = a.copy()
d[0,0] = 987
print(d)
print(id(a))
print(id(d))
print(a)
結果如下[[987 1 2 3]
[ 4 5 6 7]
[ 8 9 10 324]]
2772596221712
2772628476192
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 324]]
Python中引用複製 分片複製 完整複製
首先直接看例子 l1 1,2,3 l11 l1 l2 4,5,l1 l2 4,5,1,2,3 l3 l2 l3 4,5,1,2,3 import copy l4 copy.deepcopy l2 l4 4,5,1,2,3 l2 1 6 l2 4,6,1,2,3 l3 4,5,1,2,3 l4 4,5...
python中深複製與淺複製
從定義上來說 1 copy.copy 是淺複製,只拷貝父物件,不會拷貝物件的內部的子物件。2 copy.deepcopy 是深複製,拷貝物件及其子物件。import copy a 1,2,3,4,a b 原始物件 b a 賦值,傳物件的引用 c copy.copy a 物件拷貝,淺拷貝 d copy...
Python中 「,淺複製和深複製的理解
1 賦值語句 的理解 在python中,物件的管理是通過物件引用計數器來實現的。如果某個物件的引用計數器變為0時,那麼該例項化物件將無法再被獲取,系統會自動將其消亡並 相應的記憶體,這也是記憶體管理機制。而賦值語句,其實就是將乙個物件的引用傳遞給某個變數,具體解釋看下面的例子。x 1,2,3 y x...