python中的複製

2021-09-01 13:32:19 字數 1205 閱讀 7451

複製

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...