一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

實例介紹Python中深淺拷貝

數(shù)據(jù)分析與開發(fā) ? 來源:數(shù)據(jù)分析與開發(fā) ? 作者:數(shù)據(jù)分析與開發(fā) ? 2020-12-16 11:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

一、深淺copy

賦值運算

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

淺copy

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

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

例2

例3

小結(jié):

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

深copy

但是python對深copy做了一個優(yōu)化,將可變的數(shù)據(jù)類型在內(nèi)存中重新創(chuàng)建一份,而不可變的數(shù)據(jù)類型則沿用之前的,所以內(nèi)存中是下面這樣的:

小結(jié):

深copy:會在內(nèi)存中開辟新空間,將原列表以及列表里面的可變數(shù)據(jù)類型重新創(chuàng)建一份,不可變數(shù)據(jù)類型則沿用之前的。

為什么Python默認(rèn)的拷貝方式是淺拷貝?

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

空間角度:淺拷貝花費內(nèi)存更少。

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

總結(jié):

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

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

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

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

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

Python 有多種方式實現(xiàn)淺拷貝,copy模塊的copy 函數(shù) ,對象的 copy 函數(shù) ,工廠方法,切片等。

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

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

責(zé)任編輯:xj

原文標(biāo)題:圖解 Python 中深淺拷貝

文章出處:【微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7256

    瀏覽量

    91859
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86737
  • 編程拷貝
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    5647

原文標(biāo)題:圖解 Python 中深淺拷貝

文章出處:【微信號:DBDevs,微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    使用串口dma環(huán)形接收+空閑中斷,觸發(fā)空閑中斷后進入任務(wù)拷貝數(shù)據(jù)發(fā)現(xiàn)拷貝的數(shù)據(jù)全為0,怎么處理?

    求助,我使用串口dma環(huán)形接收+空閑中斷,默認(rèn)應(yīng)該開了緩存,在觸發(fā)空閑中斷后進入任務(wù)拷貝數(shù)據(jù)發(fā)現(xiàn)拷貝的數(shù)據(jù)全為0,但是我掛上調(diào)試之后在拷貝之前只要打上斷點斷一次執(zhí)行之后再執(zhí)行就正常了
    發(fā)表于 03-27 06:17

    零基礎(chǔ)入門:如何在樹莓派上編寫和運行Python程序?

    在這篇文章,我將為你簡要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運行一個簡單的Pyth
    的頭像 發(fā)表于 03-25 09:27 ?731次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運行<b class='flag-5'>Python</b>程序?

    飛凌嵌入式ElfBoard ELF 1板卡-內(nèi)核空間與用戶空間的數(shù)據(jù)拷貝之?dāng)?shù)據(jù)拷貝介紹

    在Linux系統(tǒng),內(nèi)核空間和用戶空間是兩個獨立的地址空間,它們有不同的訪問權(quán)限和內(nèi)存保護機制。在內(nèi)核空間和用戶空間之間進行數(shù)據(jù)傳輸時,需要進行數(shù)據(jù)拷貝操作。Linux內(nèi)核提供了幾種方法來實現(xiàn)內(nèi)核
    發(fā)表于 03-19 08:55

    如何將python文件導(dǎo)入到ROS系統(tǒng)

    本文通過使用myCobot機械臂進行QR碼視覺追蹤的實踐案例分析,介紹如何將 python 文件導(dǎo)入到 ROS 系統(tǒng)
    的頭像 發(fā)表于 02-11 11:08 ?804次閱讀
    如何將<b class='flag-5'>python</b>文件導(dǎo)入到ROS系統(tǒng)<b class='flag-5'>中</b>

    四頻拷貝遙控器走俏海外

    常有同事反饋和客戶溝通時,需要了解客戶的遙控器頻率才能推薦合適的拷貝遙控器,這就需要客戶拆開遙控器查看才能確定,而有些扣位結(jié)合的原裝遙控器,強行拆開會導(dǎo)致遙控器損壞,對于客戶來講就是得不償失的事了
    的頭像 發(fā)表于 02-08 15:34 ?524次閱讀
    四頻<b class='flag-5'>拷貝</b>遙控器走俏海外

    FB08 1對7 U盤拷貝格式化機——高效數(shù)據(jù)復(fù)制工具

    FB08 1對7 U盤拷貝格式化機,采用臺灣捷美原廠工藝,具備25MB/s的高速拷貝速度和8口同步復(fù)制功能,支持加密U盤免解密拷貝及USB 2.0/3.0設(shè)備。支持FAT16/FAT32格式化,兼容
    的頭像 發(fā)表于 02-08 13:51 ?452次閱讀
    FB08 1對7 U盤<b class='flag-5'>拷貝</b>格式化機——高效數(shù)據(jù)復(fù)制工具

    華為云 Flexus X 實例下的場景體驗——小企業(yè)使用 Python 語言——超迅速搭建簡單公網(wǎng) API 接口服務(wù)

    ? 前言 小企業(yè)為了快速搞定一些接口功能如果不使用 Python 的話相對來說復(fù)雜度還是很高的,這里我來通過【華為云 Flexus X 實例】來迅速的搭建一個 Python 的 WebApi 示例
    的頭像 發(fā)表于 12-27 13:46 ?519次閱讀
    華為云 Flexus X <b class='flag-5'>實例</b>下的場景體驗——小企業(yè)使用 <b class='flag-5'>Python</b> 語言——超迅速搭建簡單公網(wǎng) API 接口服務(wù)

    M.2硬盤拷貝,該怎么選擇適合的工具?FPGA拷貝機到底有沒有用?

    探索SP-B1011 M.2 FPGA硬盤拷貝機,一款支持NVMe和SATA接口的高效數(shù)據(jù)管理工具。無需計算機,即插即用,提供快速拷貝、全盤拷貝和安全抹除模式。適用于個人和專業(yè)IT人士,滿足各種數(shù)據(jù)備份和恢復(fù)需求。
    的頭像 發(fā)表于 12-12 11:02 ?681次閱讀
    M.2硬盤<b class='flag-5'>拷貝</b>,該怎么選擇適合的工具?FPGA<b class='flag-5'>拷貝</b>機到底有沒有用?

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

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

    Python多線程和多進程的區(qū)別

    Python作為一種高級編程語言,提供了多種并發(fā)編程的方式,其中多線程與多進程是最常見的兩種方式之一。在本文中,我們將探討Python多線程與多進程的概念、區(qū)別以及如何使用線程池與進程池來提高并發(fā)執(zhí)行效率。
    的頭像 發(fā)表于 10-23 11:48 ?1021次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>中</b>多線程和多進程的區(qū)別

    磁盤拷貝機會拷貝刪除的內(nèi)容嗎

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

    pytorch和python的關(guān)系是什么

    ,PyTorch已經(jīng)成為了一個非常受歡迎的框架。本文將介紹PyTorch和Python之間的關(guān)系,以及它們在深度學(xué)習(xí)領(lǐng)域的應(yīng)用。 Python簡介 Python是一種高級、解釋型、通用
    的頭像 發(fā)表于 08-01 15:27 ?3281次閱讀

    怎么導(dǎo)出python邊緣計算的APP?

    怎么導(dǎo)出python邊緣計算的APP,想進行修改又找不到源碼
    發(fā)表于 07-25 06:13

    Python建模算法與應(yīng)用

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

    Python在AI的應(yīng)用實例

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