python筆記 深拷貝問題

2022-08-15 06:57:16 字數 548 閱讀 1347

#

記錄看到的乙個問題

l =a ={}

for i in range(2):

a['a

'] =i

print

(l)#

輸出結果[,]

#為什麼不是 [, ] ?##

l實際上存放了若干個字典的引用

#以下是兩種改進的方法

l =a ={}

for i in range(4):

a['a

']=i'a

':a['a'

]})print

(l)l =

for i in range(4):

a ={}

a['a

']=i

print(l)

2018-05-12

做畢設遇到蜜汁bug,想到這個問題,這個問題其實是淺拷貝和深拷貝問題,貌似物件導向的語言都會有這個問題。搜到了一篇詳細講解的文章,鏈結貼一下。用了文章介紹的deepcopy方法解決了這個bug,不過我對這一塊的只是很不熟悉,需要好好學習一下了。

python深拷貝報錯 python深拷貝和淺拷貝

在python中,物件賦值實際上是物件的引用。當建立乙個物件,然後把它賦給另乙個變數的時候,python並沒有拷貝這個物件,而只是拷貝了這個物件的引用 一般有三種方法,alist 1,2,3,a b 1 直接賦值,預設淺拷貝傳遞物件的引用而已,原始列表改變,被賦值的b也會做相同的改變 b alist...

python深拷貝報錯 python深拷貝和淺拷貝

在python中,物件賦值實際上是物件的引用。當建立乙個物件,然後把它賦給另乙個變數的時候,python並沒有拷貝這個物件,而只是拷貝了這個物件的引用 一般有三種方法,alist 1,2,3,a b 1 直接賦值,預設淺拷貝傳遞物件的引用而已,原始列表改變,被賦值的b也會做相同的改變 b alist...

筆記 Python深拷貝和淺拷貝

a為已有容器,b作為a的拷貝 淺拷貝 a,b位址不同,a,b中元素的位址是相同的。淺拷貝的特點,只是將容器內的元素位址複製了乙份。如果修改a中的可變型別 a,b中對應元素的位址不變,內容保持一致 如果修改a中的不可變型別 a中對應元素的位址和內容會改變,a,b對應元素位址和內容不同 深拷貝 a,b位...