這篇文章帶給大家的內容是關於python中深淺拷貝的簡單講解(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
複習一下,深淺拷貝。
上程式碼:
# -*- coding: utf-8 -*- """ Created on Thu Sep 20 14:18:48 2018 @author: Lenovo """ import copy,json a={"ab":1,"cd":{"ef":2},"gh":[1,2,3]} print "a1:",a b=dict(a["cd"]) c=copy.copy(a) d=copy.deepcopy(a) e=a["cd"] a["cd"]["xy"]=3 a["fx"]=5 a["cd"]["ef"]=20 print "a2:",a print "b :",b print "c :",c print "d :",d print "e :",e
結果:
a1: {'gh': [1, 2, 3], 'ab': 1, 'cd': {'ef': 2}} a2: {'gh': [1, 2, 3], 'fx': 5, 'ab': 1, 'cd': {'xy': 3, 'ef': 20}} b : {'ef': 2} c : {'cd': {'xy': 3, 'ef': 20}, 'ab': 1, 'gh': [1, 2, 3]} d : {'cd': {'ef': 2}, 'ab': 1, 'gh': [1, 2, 3]} e : {'xy': 3, 'ef': 20}
從結果可以看出:
dict()指令建立了一個新的字典;
"="賦值相當於使用了「引用」概念;
copy.copy是淺拷貝,對拷貝的資訊進行修改則會相應修改,新增或對其他未拷貝的資訊修改,淺拷貝物件是不會有修改;
例如c拷貝的範圍是"gh","ab","cd"三個key,若對這三個key的value修改,拷貝後物件會隨之修改,但是對其他資訊修改,如增加key"fx",拷貝後的物件不會修改。
copy.deepcopy是深拷貝,創建全新的物件。
以上是python中深淺拷貝的簡單講解(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!