我有一個包含元組的列表字典。我想創建一個字典的副本並只編輯其中一個副本。下面是複製的字典的四種方法,通常爲我工作:如果您嘗試更改格言在Python中複製字典
import copy
dicta = {'A':[(1,1)]}
dictb = dicta.copy()
dictc = dict(dicta)
dictd = dict((k,v) for k,v in dicta.items())
dicte = copy.deepcopy(dicta)
:
dicta['A'][0] = [(9,9)]
你會發現,每個副本仍然指向相同的字典格言,除了對於通過copy.deepcopy
創建的副本。儘管dicta is dictX
爲所有副本返回False
,但發生這種情況。
這是怎麼回事?
'dicta [「A」]是dictX [「A」]'return? – Kevin
請注意,如果您不希望'dicta ['A']'的新內容成爲_nested_列表,那麼可以使用其他複製技術,如果您執行'dicta ['A'] = [(9,9 )]'。當然,如果你做'口述'['A'] [0] =(9,9)',他們將不會工作。 –