Python 深淺拷貝

2022-03-17 16:02:51 字數 1127 閱讀 2407

a = [1, 2, 3, 4]

b = b.copy() # 把 a 列表複製乙份

print(b)

b[0] = 5 # 修改 b 列表的中的元素

print(a) # 列印 a 列表

print(b) # 列印 b 列表

執行結果:

我們在這裡看到 b 修改的元素並沒有影響到 a 列表。

a = [[1, 2], 3, 4]   # a 列表中包含了乙個列表

b = a.copy()

print(b)

b[0][0] = 8 # 修改 b 列表裡面的元素

print(a)

print(b)

執行結果:

現在 a,b 列表中的元素都改變了

下面是**,淺拷貝只是拷貝了列表元素中的第一層,更深層並沒有被拷貝。這裡 b 拷貝了 a[0] 的記憶體位址 0088,通過 b[0][0] 修改了元素。a[0],b][0] 的記憶體位址並沒有發生改變。

執行結果:

使用了深拷貝後,對於 b 列表的改變並不會影響到 a 列表。

發現一片不錯的文章,大夥也可以進行參考:

python 深淺拷貝案例 python 深淺拷貝

深淺拷貝 對於 數字 和 字串 而言,賦值 淺拷貝和深拷貝無意義,因為其永遠指向同乙個記憶體位址 import copy a1 22255 a2 22255 print id a1 id a2 3428240 3428240 對於字典 元祖 列表 而言,進行賦值 淺拷貝和深拷貝時,其記憶體位址的變化...

python 深淺拷貝

建立乙個寬度為3,高度為4的陣列 mylist 0 3 4 0,0,0 0,0,0 0,0,0 0,0,0 但是當操作mylist 0 1 1時,發現整個第二列都被賦值,變成 0,1,0 0,1,0 0,1,0 0,1,0 list n n shallow copies of list concat...

python深淺拷貝

python 深淺拷貝 shallow copy 和 deep copy 對於乙個列表,列表裡面可以再放入乙個列表 1 若想複製這乙個列表,使用列表的普通的copy 方法,只能拷貝出列表裡表層的元素,而列表裡的列表卻無法拷貝,只能指向前乙個列表.修改拷貝出的列表裡列表裡的元素,原來的列表會發生改變....