国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 阳泉市| 拉萨市| 岗巴县| 聂荣县| 宁德市| 南投市| 阜新市| 应城市| 萨迦县| 万全县| 河北区| 湘潭市| 宣恩县| 天祝| 广西| 邛崃市| 莆田市| 高尔夫| 博爱县| 靖远县| 剑阁县| 崇州市| 甘谷县| 富川| 嘉义市| 阜阳市| 易门县| 温泉县| 馆陶县| 东城区| 新竹市| 康马县| 达拉特旗| 海盐县| 资兴市| 沧州市| 新晃| 南投市| 红原县| 琼结县| 东丽区|