python中的複製
阿新 • • 發佈:2018-12-02
複製
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]]