中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何實現深淺拷貝

發布時間:2021-10-18 15:42:07 來源:億速云 閱讀:200 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“Python如何實現深淺拷貝”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Python如何實現深淺拷貝”這篇文章吧。

一、淺拷貝

淺拷貝,記住一點,淺拷貝不管多復雜,只copy第一層,看圖說話。
1、定義源列表list_s,列表list_c,并進行拷貝操作,查看兩列表的值相等,如下圖所示。

Python如何實現深淺拷貝
2、現在源列表list_s數據更改,增加數值list_s.append(3),list_s數值改變,而列表list_c的值不變,如下圖所示。
Python如何實現深淺拷貝
3、現在list_c數據更改,增加數值list_c.append(4),list_c數值改變,而源列表list_s的數值保持不變,如下圖所示。
Python如何實現深淺拷貝
由以上三步操作可以看出,源list_s里面嵌套了[3,4]列表,對源list_s進行追加3,發現list_s數值改變,而list_c數值沒有改變,而對list_c追加4,發現list_s數值未改變,而list_c數值改變了,那么對源list_s里面的[3,4]進行改變,看list_s和list_c數值會發生怎樣的變化,繼續往下看。
4、修改源list_s里面的[3,4]值,增加5,變成[3,4,5],發現源list_s改變,list_c數值也發生改變,而且,兩者更改的地方是一樣的,都變成了[3,4,5],如下圖所示。
Python如何實現深淺拷貝
5、那么修改list_c里面的[3,4,5]值,增加6,變成[3,4,5,6],發現list_c改變,源list_s數值也發生改變,而且,兩者更改的地方是一樣的[3,4,5,6],如下圖所示。
Python如何實現深淺拷貝
由以上兩步操作可以看出,不管是源list_s,還是list_c改變列表中嵌套的列表[3,4]的值時,源list_s和list_c都會發生改變,而且變化一樣。
從內存地址來看,如下圖所示。
Python如何實現深淺拷貝

綠色的為追加的內容,可以看出,進行淺拷貝之后,列表中嵌套的列表[3,4]指向的內容以及地址,并未發生改變,所以,不論[3,4]發生什么樣的改變,llist_s和list_c都會發生同樣的改變,而第一層的列表,list_s和list_c都是相互獨立的,兩者發生改變不會影響對方。

綜上所述,淺拷貝只拷貝第一層,深層次的數據改變都會影響其他.

二、深拷貝

搞明白淺拷貝之后,深拷貝就很好理解了,深拷貝就是在內存中重新開辟一塊空間,不管數據結構有多復雜,只要數據發生改變,就重新開辟一塊內存空間把內容復制下來,直到最后一層,通俗點講就是,深拷貝就是重新定義一個變量,于之前的沒有半毛錢關系,所以更改里面的內容,原來的并不會發生改變。舉例說明,如下圖所示。
Python如何實現深淺拷貝
定義list_s=[1,2,[3,4]],而list_c進行深拷貝,初始值,兩者一樣,然后對list_s追加3,對list_c中的列中中的列表[3,4]追加5,發現,list_s為[1,2,[3,4],3], list_c為[1,2,[3,4,5]]彼此的變化并沒有影響對方。

以上是“Python如何實現深淺拷貝”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

涡阳县| 潼关县| 金堂县| 平顶山市| 大渡口区| 封开县| 宜阳县| 丰台区| 文山县| 凌源市| 延川县| 扬州市| 奉节县| 阜城县| 稻城县| 云林县| 嘉祥县| 民乐县| 曲沃县| 平原县| 宜君县| 城市| 准格尔旗| 萝北县| 余江县| 泌阳县| 灵宝市| 九寨沟县| 绥阳县| 桑日县| 潜江市| 邓州市| 珲春市| 丽水市| 朝阳区| 嘉义市| 江津市| 桐乡市| 萨嘎县| 怀仁县| 富顺县|