Python之深淺拷貝

2022-08-04 08:45:14 字數 1052 閱讀 8929

1 a = [1,2,3]

2 b =a

3 b[0] = 2

4print

(a)5

print(b)

輸出:[2, 2, 3]

[2, 2, 3]

像上面直接賦值, a為可變型變數,b=a相當於b是a的別名,b和a指向相同的位址;改變b中的值,相應的a的值也會改變。

1 a = [[1,2],3,4]

2 b =a.copy()

3 b[1] = 2

4print

(a)5

print(b)

輸出:[[1, 2], 3, 4]

輸出:[['123', 2], 3, 4]

淺拷貝只拷貝一層。

深拷貝後,兩者沒有任何關係。

1

import

copy

2 a = [[1,2],3,4]

3 b =copy.deepcopy(a)

4 b[0][0] = "

123"

5print

(a)6

print(b)

輸出:[[1, 2], 3, 4]

[['123', 2], 3, 4]

python之深淺拷貝

lis 1 3,world 1,hello lis 2 lis 1.copy print 列表1元素的id lis 1,id lis 1 0 id lis 1 0 0 id lis 1 0 1 id lis 1 1 id lis 1 2 print 列表2元素的id lis 2,id lis 2 0...

python之深淺拷貝

基礎沒打牢,python的深淺copy老是混淆,模稜兩可的。一 物件賦值 a 1,2,3 b a 物件賦值 print id a print id b 執行上面的 可以發現id a id b 為什麼呢?其實是在記憶體中有乙個列表 1,2,3 a和b就是兩個標籤,都指向列表 1,2,3 如下圖 當修改...

python之深淺拷貝

對於 數字 和 字串 而言,賦值 淺拷貝和深拷貝無意義,因為其永遠指向同乙個記憶體位址。importcopy 數字 字串 n1 123 n1 age 10 print id n1 賦值 n2 n1 print id n2 淺拷貝 n2 copy.copy n1 print id n2 深拷貝 n3 ...