Python:为什么dict.fromkeys公司方法不产生有效的决策

2024-10-04 09:18:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下字典:

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}

一切都很好。我认为这是一个类似的问题,但我想知道为什么会发生这种情况,而不是如何解决它。在


Tags: inrefnewfor字典方式情况range
1条回答
网友
1楼 · 发布于 2024-10-04 09:18:04

fromkeys(S, v)S中的所有键设置为相同的值v。这意味着字典中的所有键都指向同一个dictionary对象,而不是它们自己的字典副本。在

要将每个对象设置为不同的dict对象,不能使用fromkeys。你只需要在一个循环中将每个键设置为一个新的dict。在

除了你所拥有的,你也可以做

{i: {a: 0 for a in aas} for i in ref_range}

相关问题 更多 >