Python直接賦值及深淺拷貝原理詳解
定義
- 直接賦值:就是對(duì)象的引用(別名)
- 淺拷貝(copy):拷貝父對(duì)象,不拷貝對(duì)象內(nèi)部的子對(duì)象
- 深拷貝(deepcopy):copy模塊的deepcopy方法,完全拷貝父對(duì)象及其子對(duì)象
解釋
b = a: 賦值引用,a和b都指向同一個(gè)對(duì)象
b = a.copy(): 淺拷貝,a和b都是一個(gè)獨(dú)立的對(duì)象,但它們的子對(duì)象是指向統(tǒng)一對(duì)象(是引用)
b = copy.deepcopy(a): 深拷貝,a和b完全拷貝了父對(duì)象及其子對(duì)象,兩者是完全獨(dú)立的
示例
以下是直接賦值、淺拷貝和深拷貝之對(duì)比
import copy a = [1, 2, 3, 4, ['a', 'b']] #原始對(duì)象 b = a #直接賦值,原始對(duì)象的引用 c = copy.copy(a) #淺拷貝 d = copy.deepcopy(a) #深拷貝 a.append(5) #修改對(duì)象a a[4].append('c') #修改對(duì)象a中的['a', 'b']列表對(duì)象 print( 'a = ', a ) print( 'b = ', b ) print( 'c = ', c ) print( 'd = ', d )
以上實(shí)例執(zhí)行輸出結(jié)果為:
a = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
b = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
c = [1, 2, 3, 4, ['a', 'b', 'c']]
d = [1, 2, 3, 4, ['a', 'b']]
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python中的random.uniform()函數(shù)教程與實(shí)例解析
今天小編就為大家分享一篇關(guān)于Python中的random.uniform()函數(shù)教程與實(shí)例解析,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03Python實(shí)現(xiàn)指定范圍內(nèi)篩選并剔除Excel表格中的數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)在指定范圍內(nèi)篩選并剔除Excel表格中的數(shù)據(jù),文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-06-06淺談Selenium+Webdriver 常用的元素定位方式
這篇文章主要介紹了淺談Selenium+Webdriver 常用的元素定位方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Linux安裝Pytorch1.8GPU(CUDA11.1)的實(shí)現(xiàn)
這篇文章主要介紹了Linux安裝Pytorch1.8GPU(CUDA11.1)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03