2010-02-27 129 views
3

我有一個字典,如dict1 = { 0 : 0, 1 : 1, 2 : { 0: 0, 1 : 1}}(它也有一個字典作爲值)。我想保留這些值相同的一些修改檢查的目的。因此,現在我將這本詞典的內容複製到另一個字典中作爲dict2 = dict1.copy()。現在我正在更改dict2的值,如{ 0 : -1, 1 : -2, 2: { 0 : -1, i : -2}}。現在的問題是,我的dict1的字典值也改變爲{ 0 : 0, 1 : 1, 2:{ 0 : -1, 1 : -2}}。在這裏你可以很容易地看到這個dict1的關鍵2值也改變爲dict2的關鍵2值。應對字典內的字典(嵌套字典)

我應該如何複製從dict1dict2因此,如果變化dict2的關鍵2值這不應該提上dict1一個衝擊的關鍵= 2倍的值?

+0

我無法複製這個。你使用的是什麼版本,你如何改變字典2中的值? – 2010-02-27 17:11:27

+1

@ J.T。 'd = {1:{2:3}}; e = d.copy(); e [1] [2] = 4; d' – kennytm 2010-02-27 17:23:52

+0

@KennyTM謝謝。這個例子加上「d [1]是e [1]」幫助我明確瞭解發生了什麼。 – 2010-03-01 22:14:42

回答

11

使用copy.deepcopy執行深度複製。

+0

非常感謝我得到了正確的答案。 – 2010-02-28 10:41:42