创建由另一个字典的不同副本组成的字典

时间:2013-02-10 21:12:35

标签: python dictionary

在Python中,有两个词典,只需要做

dict2 = dict1

不会导致dict2成为dict1的独特副本。它们将指向相同的东西,因此修改dict2将对dict1执行相同的效果。

一种解决方法是

dict2 = dict(dict1)

所以如果我要修改dict2,它不会影响dict1的值。

在我的程序中,我正在制作一个由前一个字典的多个副本组成的字典。让我们调用前一个字典temp2和当前的一个temp3。我不知道我需要提前多少份,所以我想这样做:

temp3 = {}
for i in xrange(some_number):
    temp3[i] = dict(temp2)

但我的调试测试显示,如果我修改temp3 [0]的字典(再次,它是temp2的副本),那么这也将修改temp3 [1]的副本和temp3 [2],等等,所以结果是一个由n个相同的字典副本组成的字典,其中n = some_number。有没有人知道一个解决方法?感谢。

编辑:在回复评论时,temp2是由列表组成的字典,因此{a:[list1],b:[list2]等。}。

1 个答案:

答案 0 :(得分:3)

尝试使用copy.deepcopy方法:http://docs.python.org/2/library/copy.html