繁体   English   中英

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

[英]Creating a dictionary composed of distinct copies of another 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]等}。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM