欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

圖解Python中深淺copy(通俗易懂)

 更新時(shí)間:2020年09月03日 08:34:19   作者:南枝向暖北枝寒MA  
這篇文章主要介紹了圖解Python中深淺copy(通俗易懂),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、深淺copy

賦值運(yùn)算

l1 = [1, 2, 3, [22, 33]]
l2 = l1
l1.append(666)

print(l1) # [1, 2, 3, [22, 33], 666]
print(l2) # [1, 2, 3, [22, 33], 666]

圖解:

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

淺copy

其實(shí)列表是一個(gè)一個(gè)的槽位,每個(gè)槽位存儲(chǔ)的是該對(duì)象的內(nèi)存地址

例1. 給大列表添加元素
l1 = [1, 2, 3, [22, 33]]
l2 = l1.copy()
# 或者下面這種方式,也是淺copy
# import copy
# l2 = copy.copy(l1)
l1.append(666)

print(l1) # [1, 2, 3, [22, 33], 666]
print(l2) # [1, 2, 3, [22, 33]]

例2. 給小列表添加元素
l1 = [1, 2, 3, [22, 33]]
l2 = l1.copy()
l1[-1].append(666)

print(l1) # [1, 2, 3, [22, 33, 666]]
print(l2) # [1, 2, 3, [22, 33, 666]]、

例3. 將l1列表中第一個(gè)元素改為6
l1 = [1, 2, 3, [22, 33]]
l2 = l1.copy()
l1[0] = 6

print(l1) # [6, 2, 3, [22, 33]]
print(l2) # [1, 2, 3, [22, 33]]

圖解:

例1

例2

例3

總結(jié):

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

注意:

切片中,如果是全切,屬于淺copy。

深copy

import copy
l1 = [1, 2, 3, [22, 33]]
l2 = copy.deepcopy(l1)
l1.append(666)
print(l1) # [1, 2, 3, [22, 33], 666]
print(l2) # [1, 2, 3, [22, 33]]

圖解:

本質(zhì)如下圖:

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

總結(jié):

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

到此這篇關(guān)于圖解Python中深淺copy(通俗易懂)的文章就介紹到這了,更多相關(guān)Python 深淺拷貝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 對(duì)django xadmin自定義菜單的實(shí)例詳解

    對(duì)django xadmin自定義菜單的實(shí)例詳解

    今天小編就為大家分享一篇對(duì)django xadmin自定義菜單的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python 瀑布線指標(biāo)編寫(xiě)實(shí)例

    python 瀑布線指標(biāo)編寫(xiě)實(shí)例

    這篇文章主要介紹了python 瀑布線指標(biāo)編寫(xiě)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python編碼解碼之encode()函數(shù)詳解

    Python編碼解碼之encode()函數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于Python編碼解碼之encode()函數(shù)的相關(guān)資料,Python的encode函數(shù)用于將字符串按照指定的編碼方式進(jìn)行編碼,返回一個(gè)bytes類(lèi)型的對(duì)象,需要的朋友可以參考下
    2023-07-07
  • 使用python模擬命令行終端的示例

    使用python模擬命令行終端的示例

    今天小編就為大家分享一篇使用python模擬命令行終端的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • 詳解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法

    詳解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法

    這篇文章主要介紹了詳解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python 如何求矩陣的逆

    Python 如何求矩陣的逆

    這篇文章主要介紹了Python 如何求矩陣的逆案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 使用python讀寫(xiě)txt和json(jsonl)大文件的方法步驟

    使用python讀寫(xiě)txt和json(jsonl)大文件的方法步驟

    在Python中讀取txt和json(jsonl)大文件并保存到字典是一項(xiàng)非常常見(jiàn)的操作,這篇文章主要給大家介紹了關(guān)于使用python讀寫(xiě)txt和json(jsonl)大文件的方法步驟,需要的朋友可以參考下
    2023-12-12
  • Python量化因子測(cè)算與繪圖超詳細(xì)流程代碼

    Python量化因子測(cè)算與繪圖超詳細(xì)流程代碼

    這篇文章主要介紹了Python量化因子測(cè)算與繪圖,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-02-02
  • Python實(shí)現(xiàn)敏感詞過(guò)濾的五種方法

    Python實(shí)現(xiàn)敏感詞過(guò)濾的五種方法

    在我們生活中的一些場(chǎng)合經(jīng)常會(huì)有一些不該出現(xiàn)的敏感詞,我們通常會(huì)使用*去屏蔽它,一些罵人的敏感詞和一些政治敏感詞都不應(yīng)該出現(xiàn)在一些公共場(chǎng)合中,這個(gè)時(shí)候我們就需要一定的手段去屏蔽這些敏感詞,下面我來(lái)介紹一些簡(jiǎn)單版本的Python敏感詞屏蔽的方法,需要的朋友可以參考下
    2025-04-04
  • opencv-python 開(kāi)發(fā)環(huán)境的安裝、配置教程詳解

    opencv-python 開(kāi)發(fā)環(huán)境的安裝、配置教程詳解

    這篇文章主要介紹了opencv-python 開(kāi)發(fā)環(huán)境的安裝、配置,本文分步驟通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09

最新評(píng)論