python 引用,淺copy和深拷貝

2021-08-23 14:52:05 字數 455 閱讀 5689

l = [1,2,3,4]

g = l

g[-1] = 3

上面這個方法是引用複製,因為g和l是同乙個東東,輸出結果是 g=[1,2,3,3] l =[1,2,3,3]

如果想複製所有的生成乙個新的list,那麼使用下面的方法

g = [data for data in l]

這樣就全部的值都copy 過來

現在你再g[-1] = 5,g和l 的值肯定不一樣。

你會發現l中的值和g中的值還是一樣的。原因還是由於copy了引用,而沒有copy真正的值。

所以要解決的話,使用笨的方法是:

g =

更好的方式是使用list中的extend,

例如a = [1,2]

b =

b.extend(a)

a =

print(b)

可以看到b還是有a原來的值。

Python列表賦值 淺copy 深copy的區別

1.python中列表的賦值操作 賦值操作在其他語言裡也很常見,例 name1 centos 123123,fedora freebsd uos deepin flag name2 name1 這是python中列表的賦值方式,經過列印後列表name2和列表name1是一樣的 centos 1231...

關於python深copy與淺copy的一點理解

一直對python深copy和淺copy似懂非懂的狀態,看了這篇文章,覺得自己懂了很多,給各位參考!出處 import copy a 1 不可變資料型別 copy a copy.copy a print id a id copy a 記憶體位址相同 a 1,2 可變資料型別 copy a copy....

Python 淺拷貝與深拷貝,copy模組

python中的任何變數都是物件 引用型別 python中的變數分為可變型別和不可變型別。淺拷貝和深拷貝都是拷貝可變型別內容,不可變型別不會拷貝 注意 因為元組是不可變型別,所以元組的淺拷貝並不會拷貝任何內容,而是直接引用源元組 和 賦值等同 如果元組中的元素都是不可變型別,那麼元組的深拷貝也並不會...