在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]等。}。