2010-02-27 84 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