1 a = [1,2,3]像上面直接賦值, a為可變型變數,b=a相當於b是a的別名,b和a指向相同的位址;改變b中的值,相應的a的值也會改變。2 b =a
3 b[0] = 2
4print
(a)5
print(b)
輸出:[2, 2, 3]
[2, 2, 3]
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]
淺拷貝只拷貝一層。
深拷貝後,兩者沒有任何關係。1import
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 ...