亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

    深入理解python中的淺拷貝和深拷貝

    系統 2040 0

    在講什么是深淺拷貝之前,我們先來看這樣一個現象:

                
    a = ['scolia', 123, [], ]
    b = a[:]
    b[2].append(666)
    print a
    print b
              

    為什么我只對b進行修改,卻影響到了a呢?看過我在之前的文章中就說過:序列中保存的都是內存的引用。

    深入理解python中的淺拷貝和深拷貝_第1張圖片

    所以,當我們通過b去修改里面的空列表的時候,其實就是修改內存中的同一個對象,所以會影響到a。

                
    a = ['scolia', 123, [], ]
    b = a[:]
    print id(a), id(a[0]), id(a[1]), id(a[2])
    print id(b), id(b[0]), id(b[1]), id(b[2])
              

    代碼驗證無誤,所以雖然a和b是兩個不同的對象,但是里面的引用都是一樣的。這就是所謂新的對象,舊的內容。

    但是,淺拷貝還不僅如此,看下面:

                
    a = ['scolia', 123, [], ]
    b = a[:]
    b[1] = 666
    print a
    print b
              

    這又是怎么回事呢?

    看過我在python變量賦值說明的同學會知道:對于字符串、數字等不可變的數據類型,修改就相當于重新賦值。在這里就相當于刷新引用。

    深入理解python中的淺拷貝和深拷貝_第2張圖片

    代碼驗證一下:

                
    a = ['scolia', 123, [], ]
    b = a[:]
    b[1] = 666
    print id(a), id(a[0]), id(a[1]), id(a[2])
    print id(b), id(b[0]), id(b[1]), id(b[2])
              

    深入理解python中的淺拷貝和深拷貝_第3張圖片

    看來是正確的。

    上面講的這些就是淺拷貝,總結起來,淺拷貝只是拷貝了一系列引用,當我們在拷貝出來的對象對可修改的數據類型進行修改的時候,并沒有改變引用,所以會影響原對象。而對不可修改的對象進行修改的是,則是新建了對象,刷新了引用,所以和原對象的引用不同,結果也就不同。

    創建淺拷貝的方法:

    1.切片操作

    2.使用list()工廠函數新建對象。( b = list(a) )

    那么深拷貝不就是將里面引用的對象重新創建了一遍并生成了一個新的一系列引用。

    基本上是這樣的,但是對于字符串、數字等不可修改的對象來說,重新創建一份似乎有點浪費內存,反正你到時要修改的時候都是新建對象,刷新引用的。所以還用原來的引用也無所謂,還能達到節省內存的目的。

    深入理解python中的淺拷貝和深拷貝_第4張圖片

    看下代碼驗證:

                
    from copy import deepcopy
    a = ['scolia', 123, [], ]
    b = deepcopy(a)
    b[1] = 666
    print id(a), id(a[0]), id(a[1]), id(a[2])
    print id(b), id(b[0]), id(b[1]), id(b[2])
              

    深入理解python中的淺拷貝和深拷貝_第5張圖片

    驗證正確。

    深拷貝的創建:

    1.正如代碼示例用一樣,只能通過內置的copy模塊的deepcopy()方法創建。

    好了,關于深淺拷貝的問題就先說到這里,有什么錯誤或需要補充的以后會繼續。

    以上這篇深入理解python中的淺拷貝和深拷貝就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。


    更多文章、技術交流、商務合作、聯系博主

    微信掃碼或搜索:z360901061

    微信掃一掃加我為好友

    QQ號聯系: 360901061

    您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

    【本文對您有幫助就好】

    您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

    發表我的評論
    最新評論 總共0條評論
    主站蜘蛛池模板: 草久在线观看视频 | 久久只有精品视频 | 高h女| 亚洲欧美日韩专区 | 亚洲伊人久久大香线蕉啊 | 久久综合色播 | 天天色天天射天天干 | 元龙第三季动漫在线观看免费版 | 精品国产免费观看 | 精品国产夜色在线 | 欧美亚洲一区二区三区在线 | 四虎影院4hu | 奇米影视第四色首页 | 久久久久国产精品免费看 | 中文字幕欧美在线观看 | 免费一级毛片视频 | 亚洲小色网 | 四虎网站在线观看 | 久久久91精品国产一区二区三区 | 精品无人区乱码1区2区3区在线 | 四虎影院最新入口 | 亚洲一欧洲中文字幕在线 | 色视频一区二区三区 | 2020国产精品视频免费 | 亚洲女人国产香蕉久久精品 | 色噜噜亚洲精品中文字幕 | 亚洲综合视频在线观看 | 视频在线国产 | 亚洲精品久久久久久小说 | 狠狠色丁香久久婷婷综合丁香 | 亚洲国产成人九九综合 | 中文字幕在线高清 | 亚洲精品视频久久 | 天海翼精品久久中文字幕 | 国产色资源 | 国产午夜爽爽窝窝在线观看 | 河南毛片| 日本综合视频 | 久久久久久久国产精品毛片 | 亚洲 在线播放 | 亚洲香蕉久久一区二区三区四区 |