我有以下字典:
ref_range = range(0,100)
aas = list("ACDEFGHIKLMNPQRSTVWXY*")
new_dict = {}
new_dict = new_dict.fromkeys(ref_range,{k:0 for k in aas})
然后我给一个特定的键加了一个1
^{pr2}$但是
>>>new_dict[31]['G']
1
这是怎么回事?我只将嵌套键30“G”增加1。在
注意:如果我以这种方式生成词典:
new_dict = {}
for i in ref_range:
new_dict[i] = {a:0 for a in aas}
一切都很好。我认为这是一个类似的问题,但我想知道为什么会发生这种情况,而不是如何解决它。在
fromkeys(S, v)
将S
中的所有键设置为相同的值v
。这意味着字典中的所有键都指向同一个dictionary对象,而不是它们自己的字典副本。在要将每个对象设置为不同的dict对象,不能使用
fromkeys
。你只需要在一个循环中将每个键设置为一个新的dict。在除了你所拥有的,你也可以做
相关问题 更多 >
编程相关推荐