国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

淺談python中copy和deepcopy中的區(qū)別

2020-01-04 16:38:45
字體:
供稿:網(wǎng)友

在下是個編程愛好者,最近將魔爪伸向了Python編程。。。。。遇到copy和deepcopy感到很困惑,現(xiàn)在針對這兩個方法進(jìn)行區(qū)分,一種是淺復(fù)制(copy),一種是深度復(fù)制(deepcopy)。

首先說一下deepcopy,所謂的深度復(fù)制,在這里我理解的是完全復(fù)制然后變成一個新的對象,復(fù)制的對象和被復(fù)制的對象沒有任何關(guān)系,彼此之間無論怎么改變都相互不影響。

然后說一下copy,在這里我分為兩類來說,一種是字典數(shù)據(jù)類型的copy函數(shù),一種是copy包的copy函數(shù)。

一、字典數(shù)據(jù)類型的copy函數(shù),當(dāng)簡單的值替換的時候,原始字典和復(fù)制過來的字典之間互不影響,但是當(dāng)添加,刪除等修改操作的時候,兩者之間會相互影響。

(1)值替換

import copy d = {   'name' : ['An','Assan'] } c = d.copy() dc = copy.deepcopy(d) d['name'] = ['an'] print c print d print dc 

結(jié)果如下:

{'name': ['An', 'Assan']} {'name': ['an']} {'name': ['An', 'Assan']} 

(2)值修改

import copy d = {   'name' : ['An','Assan'] } c = d.copy() dc = copy.deepcopy(d) d['name'].append('shu') print c print d print dc 

結(jié)果如下:

{'name': ['An', 'Assan', 'shu']} {'name': ['An', 'Assan', 'shu']} {'name': ['An', 'Assan']} 

二、copy包中的copy函數(shù),無論是修改還是值替換兩者之間都互不影響。

import copy seq = [1,2,3] seq1 = seq seq2 = copy.copy(seq) seq3 = copy.deepcopy(seq) seq.append(4) seq2[2] = 5 print seq,seq1,seq2,seq3 

結(jié)果如下:

[1, 2, 3, 4] [1, 2, 3, 4] [1, 2, 5] [1, 2, 3] 

在上面代碼中,sql1 = seq其實(shí)是同是指向同一個對象地址,使用的同一個對象引用。

總結(jié)

以上就是本文關(guān)于淺談python/115112.html">python中copy和deepcopy中的區(qū)別的全部內(nèi)容,希望對大家有所幫助。


注:相關(guān)教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 开阳县| 江安县| 沁水县| 图们市| 延寿县| 炉霍县| 融水| 房山区| 肃北| 太保市| 马关县| 汕尾市| 璧山县| 汝城县| 锦州市| 札达县| 徐汇区| 甘孜县| 靖宇县| 汶川县| 抚宁县| 云霄县| 惠水县| 太谷县| 本溪| 柳林县| 黔西| 建水县| 恩施市| 富裕县| 冕宁县| 清流县| 巨鹿县| 永定县| 隆化县| 潜江市| 民勤县| 平山县| 济源市| 米泉市| 牡丹江市|