2018-07-23 對象的復制與引用

1. 列表(list)

alist = [1, 2, 3]  ## 初始化一個列表
blist = alist   ## blist 引用 akist
clist = alist[:]  ## clist 復制 alist
print("old list is :")
print "alist is : ", alist
print "blist is : ", blist
print "clist is : ", clist
alist[1] = 3
print("new list is :")
print "alist is : ", alist
print "blist is : ", blist
print "clist is : ", clist

結果如下所示:

(python_test) ?  20180723 python test.py
old list is :
alist is :  [1, 2, 3]
blist is :  [1, 2, 3]
clist is :  [1, 2, 3]
new list is :
alist is :  [1, 3, 3]
blist is :  [1, 3, 3]
clist is :  [1, 2, 3]
(python_test) ?  20180723 

其變量與對象的變化如下圖所示


list的對象與列表的關系

2. 字典(dict)

adict = {'name': 'zhaoxin'}
bdict = adict
cdict = adict.copy()
print("old dict is: ")
print "adict is : ", adict
print "bdict is : ", bdict
print "cdict is : ", cdict
adict['name'] = 'songzhen'
print("new dict is: ")
print "adict is : ", adict
print "bdict is : ", bdict
print "cdict is : ", cdict

結果如下所示:

(python_test) ?  20180723 python test2.py 
old dict is: 
adict is :  {'name': 'zhaoxin'}
bdict is :  {'name': 'zhaoxin'}
cdict is :  {'name': 'zhaoxin'}
new dict is: 
adict is :  {'name': 'songzhen'}
bdict is :  {'name': 'songzhen'}
cdict is :  {'name': 'zhaoxin'}
(python_test) ?  20180723 

3. 深度復制

無條件值的分片和字典的copy只能做頂層復制跺涤,如果需要一個深層嵌套的數(shù)據(jù)結構的完整的钦铁,完全獨立的復制才漆,則需要使用標準的copy模塊來處理。

如下例所示:

import copy
dict1 = {"name": 'zhaoxin'}
test1 = [1, 2, 3, [3, 4, dict1]]
test2 = test1[:]    ## 頂層復制
test3 = copy.deepcopy(test1)  ## 深度復制
print "old is : "
print "test1 is : ", test1
print "test2 is : ", test2
print "test3 is : ", test3

dict1["name"] = "songzhen"
test1[2] = 4
print "new is : "
print "test1 is : ", test1
print "test2 is : ", test2
print "test3 is : ", test3

結果如下所示

(python_test) ?  20180723 python test3.py
old is : 
test1 is :  [1, 2, 3, [3, 4, {'name': 'zhaoxin'}]]
test2 is :  [1, 2, 3, [3, 4, {'name': 'zhaoxin'}]]
test3 is :  [1, 2, 3, [3, 4, {'name': 'zhaoxin'}]]
new is : 
test1 is :  [1, 2, 4, [3, 4, {'name': 'songzhen'}]]
test2 is :  [1, 2, 3, [3, 4, {'name': 'songzhen'}]]
test3 is :  [1, 2, 3, [3, 4, {'name': 'zhaoxin'}]]
(python_test) ?  20180723 
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末黎比,一起剝皮案震驚了整個濱河市鸳玩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌不跟,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件购城,死亡現(xiàn)場離奇詭異虐译,居然都是意外死亡,警方通過查閱死者的電腦和手機漆诽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門锣枝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撇叁,“玉大人,你說我怎么就攤上這事税朴。” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵颤殴,是天一觀的道長。 經(jīng)常有香客問我涵但,道長,這世上最難降的妖魔是什么矮瘟? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任塑娇,我火速辦了婚禮,結果婚禮上埋酬,老公的妹妹穿的比我還像新娘。我一直安慰自己拳球,他們只是感情好,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布祝峻。 她就那樣靜靜地躺著扎筒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪砸琅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天谚赎,我揣著相機與錄音淫僻,去河邊找鬼雳灵。 笑死,一個胖子當著我的面吹牛悯辙,可吹牛的內容都是我干的。 我是一名探鬼主播躲撰,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼击费,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蔫巩?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤垃瞧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后个从,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡信姓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年意推,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菊值。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡育灸,死狀恐怖,靈堂內的尸體忽然破棺而出磅崭,到底是詐尸還是另有隱情,我是刑警寧澤砸喻,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布蒋譬,位于F島的核電站愉适,受9級特大地震影響,放射性物質發(fā)生泄漏维咸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一瞬哼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧倒槐,春花似錦、人聲如沸附井。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至崔赌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間健芭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工慈迈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人痒留。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像伸头,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子恤磷,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內容