1. 程式人生 > >python中的複製

python中的複製

複製

python中複製有三種
  1. 引用
  2. 淺複製
  3. 深複製

引用

引用操作是用‘=’來賦值,兩個變數使用同一塊地址區域,使用相同的資料

程式碼測試
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]]