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