Python直接賦值與淺拷貝和深拷貝實(shí)例講解使用
直接賦值:其實(shí)就是對(duì)象的引用(別名)。
淺拷貝(copy):拷貝父對(duì)象,不會(huì)拷貝對(duì)象的內(nèi)部的子對(duì)象。
深拷貝(deepcopy): copy 模塊的 deepcopy 方法,完全拷貝了父對(duì)象及其子對(duì)象。
1.字典淺拷貝實(shí)例
>>>a = {1: [1,2,3]}
>>> b = a.copy()
>>> a, b
({1: [1, 2, 3]}, {1: [1, 2, 3]})
>>> a[1].append(4)
>>> a, b
({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})
深度拷貝需要引入 copy 模塊:
>>>import copy
>>> c = copy.deepcopy(a)
>>> a, c
({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})
>>> a[1].append(5)
>>> a, c
({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})
解析
1、b = a: 賦值引用,a 和 b 都指向同一個(gè)對(duì)象。

2、b = a.copy(): 淺拷貝, a 和 b 是一個(gè)獨(dú)立的對(duì)象,但他們的子對(duì)象還是指向統(tǒng)一對(duì)象(是引用)。

b = copy.deepcopy(a): 深度拷貝, a 和 b 完全拷貝了父對(duì)象及其子對(duì)象,兩者是完全獨(dú)立的。

2.更多實(shí)例
以下實(shí)例是使用 copy 模塊的 copy.copy( 淺拷貝 )和(copy.deepcopy ):
import copy
a = [1, 2, 3, 4, ['a', 'b']] #原始對(duì)象
b = a #賦值,傳對(duì)象的引用
c = copy.copy(a) #對(duì)象拷貝,淺拷貝
d = copy.deepcopy(a) #對(duì)象拷貝,深拷貝
a.append(5) #修改對(duì)象a
a[4].append('c') #修改對(duì)象a中的['a', 'b']數(shù)組對(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']])
到此這篇關(guān)于Python直接賦值與淺拷貝和深拷貝實(shí)例講解使用的文章就介紹到這了,更多相關(guān)Python直接賦值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)批量梯度下降法(BGD)擬合曲線
這篇文章主要介紹了Python實(shí)現(xiàn)批量梯度下降法(BGD)擬合曲線,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
詳解TensorFlow2實(shí)現(xiàn)前向傳播
這篇文章主要介紹了TensorFlow2如何實(shí)現(xiàn)前向傳播,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
Django零基礎(chǔ)入門之自定義標(biāo)簽及模板中的使用
這篇文章主要介紹了Django零基礎(chǔ)入門之自定義標(biāo)簽及模板中的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
Python+Matplotlib繪制帶有對(duì)角線的散點(diǎn)圖的示例代碼
Matplotlib 是一個(gè)用于繪制二維圖形的 Python 庫(kù),這篇文章主要介紹了Python如何利用Matplotlib繪制帶有對(duì)角線的散點(diǎn)圖,需要的小伙伴可以參考一下2023-06-06
Python爬蟲(chóng)常用小技巧之設(shè)置代理IP
這篇文章主要給大家介紹了關(guān)于Python爬蟲(chóng)常用小技巧之設(shè)置代理IP的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09

