精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

實例介紹Python中深淺拷貝

數據分析與開發 ? 來源:數據分析與開發 ? 作者:數據分析與開發 ? 2020-12-16 11:34 ? 次閱讀

【導語】:在工作中,常涉及到數據的傳遞,在數據傳遞使用過程中,可能會發生數據被修改的問題。為了防止數據被修改,就需要在傳遞一個副本,即使副本被修改,也不會影響原數據的使用。為了生成這個副本,就產生了拷貝。今天就說一下Python中的深淺拷貝問題。

一、深淺copy

賦值運算

注意:l2 = l1是一個指向,是賦值,和深淺copy無關。

淺copy

其實列表是一個一個的槽位,每個槽位存儲的是該對象的內存地址

#例1. 給大列表添加元素

例2

例3

小結:

淺copy:會在內存中新開辟一個空間,存放這個copy的列表,但是列表里面的內容還是沿用之前對象的內存地址。

深copy

但是python對深copy做了一個優化,將可變的數據類型在內存中重新創建一份,而不可變的數據類型則沿用之前的,所以內存中是下面這樣的:

小結:

深copy:會在內存中開辟新空間,將原列表以及列表里面的可變數據類型重新創建一份,不可變數據類型則沿用之前的。

為什么Python默認的拷貝方式是淺拷貝?

時間角度:淺拷貝花費時間更少。

空間角度:淺拷貝花費內存更少。

效率角度:淺拷貝只拷貝頂層數據,一般情況下比深拷貝效率高。

總結:

不可變對象在賦值時會開辟新空間。

可變對象在賦值時,修改一個的值,另一個也會發生改變。

深、淺拷貝對不可變對象拷貝時,不開辟新空間,相當于賦值操作。

淺拷貝在拷貝時,只拷貝第一層中的引用,如果元素是可變對象,并且被修改,那么拷貝的對象也會發生變化。

深拷貝在拷貝時,會逐層進行拷貝,直到所有的引用都是不可變對象為止。

Python 有多種方式實現淺拷貝,copy模塊的copy 函數 ,對象的 copy 函數 ,工廠方法,切片等。

大多數情況下,編寫程序時,都是使用淺拷貝,除非有特定的需求。

淺拷貝的優點:拷貝速度快,占用空間少,拷貝效率高。

責任編輯:xj

原文標題:圖解 Python 中深淺拷貝

文章出處:【微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    6898

    瀏覽量

    88838
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84463
  • 編程拷貝
    +關注

    關注

    0

    文章

    2

    瀏覽量

    5529

原文標題:圖解 Python 中深淺拷貝

文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    批量音頻檔案拷貝最佳方案:解決播放錯誤與拷貝不完全問題

    本文討論了在數字化時代,專業SD拷貝機在批量拷貝音頻檔案至MicroSD卡的應用優勢。相較于傳統計算機拷貝,SD拷貝機能夠完整復制包括隱藏
    的頭像 發表于 11-23 16:12 ?82次閱讀
    批量音頻檔案<b class='flag-5'>拷貝</b>最佳方案:解決播放錯誤與<b class='flag-5'>拷貝</b>不完全問題

    磁盤拷貝機會拷貝刪除的內容嗎

    磁盤拷貝機,也稱為硬盤克隆器或磁盤復制器,是一種用于復制硬盤驅動器內容的設備。它可以將一個硬盤上的所有數據,包括操作系統、程序、文件和設置,復制到另一個硬盤上。這種設備在數據備份、系統遷移、硬盤
    的頭像 發表于 10-14 15:38 ?281次閱讀

    Python建模算法與應用

    上成為理想的腳本語言,特別適用于快速的應用程序開發。本文將詳細介紹Python在建模算法的應用,包括常見的建模算法、Python在建模
    的頭像 發表于 07-24 10:41 ?462次閱讀

    Python在AI的應用實例

    Python在人工智能(AI)領域的應用極為廣泛且深入,從基礎的數據處理、模型訓練到高級的應用部署,Python都扮演著至關重要的角色。以下將詳細探討Python在AI的幾個關鍵應用
    的頭像 發表于 07-19 17:16 ?931次閱讀

    Python的人工智能框架與實例

    在人工智能(AI)領域,Python因其簡潔的語法、豐富的庫和強大的社區支持,成為了最受歡迎的編程語言之一。本文將詳細介紹Python的人工智能框架,并通過具體
    的頭像 發表于 07-15 14:54 ?1603次閱讀

    使用Python進行自然語言處理

    在探討使用Python進行自然語言處理(NLP)的廣闊領域時,我們首先需要理解NLP的基本概念、其重要性、Python在NLP的優勢,以及如何通過Python實現一些基礎的NLP任務
    的頭像 發表于 07-04 14:40 ?400次閱讀

    如何使用linux下gdb來調試python程序

    如何使用linux下gdb來調試python程序? 在Linux下,可以使用GDB(GNU調試器)來調試Python程序。GDB是一個強大的調試工具,可以幫助開發者診斷和修復程序的錯誤。在本文
    的頭像 發表于 01-31 10:41 ?2425次閱讀

    Python智能家居系統代碼介紹

    Python智能家居系統是一種基于Python編程語言開發的智能家居控制系統,在現代家庭得到了越來越廣泛的應用。本文將詳細介紹Python
    的頭像 發表于 01-25 09:46 ?1274次閱讀

    split在python的用法

    split在python的用法 split()是Python中一個非常常用的字符串函數,它能夠根據指定的分隔符將一個字符串分割成多個子字符串,并返回一個包含這些子字符串的列表。本文將詳細介紹
    的頭像 發表于 12-25 15:12 ?1969次閱讀

    python運算符的優先級大小

    Python運算符的優先級決定了表達式各個運算符的計算順序。了解運算符的優先級對于正確理解和編寫復雜的表達式非常重要。本文將詳細介紹Python
    的頭像 發表于 11-29 16:21 ?3261次閱讀

    python運行環境的安裝和配置

    Python是一種非常流行的編程語言,廣泛應用于科學計算、Web開發、人工智能等領域。為了能夠正常運行Python程序,我們需要先安裝和配置Python運行環境。本文將為您詳盡介紹
    的頭像 發表于 11-29 16:17 ?1104次閱讀

    python運行指定幾行

    初學者。在本文中,我們將詳細介紹如何在Python運行指定的幾行代碼。 首先,你需要具備一臺已經安裝了Python解釋器的計算機。Python
    的頭像 發表于 11-29 15:04 ?931次閱讀

    pycharm怎么配置python環境變量

    正確的 Python 環境變量是非常重要的,因為它會影響到項目的運行和依賴包的安裝。本文將詳細介紹如何在 PyCharm 配置 Python 環境變量。 PyCharm 支持在全局和
    的頭像 發表于 11-29 14:56 ?2743次閱讀

    查看python安裝路徑的方法

    Python是一種高級編程語言,常用于開發Web應用、數據分析、人工智能等領域。在使用Python進行開發之前,我們需要先安裝Python解釋器,并了解Python解釋器的安裝路徑。本
    的頭像 發表于 11-29 14:54 ?1.1w次閱讀

    python shell怎么用

    Python Shell是一種交互式解釋器,可以通過命令行直接運行Python代碼。在Shell,可以輸入一行代碼并立即得到結果,非常適合于測試、嘗試新代碼或進行簡單的任務。本文將詳細介紹
    的頭像 發表于 11-29 14:36 ?1107次閱讀