You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

整数键嵌套字典迭代赋值异常问题求助

嵌套字典赋值时所有键共享值的问题解决

问题根源

你用dict.fromkeys()创建字典时,第二个参数是可变对象(这里是嵌套字典),所有主键都会指向同一个嵌套字典对象,而非为每个键生成独立的副本。所以不管修改哪个主键对应的嵌套字典,其他主键的都会同步变化。

修复代码

用字典推导式替代fromkeys(),为每个主键生成独立的嵌套字典:

import numpy as np
# 字典推导式:每个键对应独立的嵌套字典
dic = {i: {'key1': [], 'key2': [], 'key3': []} for i in np.arange(3)}
list1 = [0.9, 0.8, 0.7]

dic[0]['key1'].append(list1[0])
dic[1]['key1'].append(list1[1])
dic[2]['key1'].append(list1[2])

for i in dic.keys():
    dic[i]['key3'].append(list1[i])

print(dic)

预期输出

{0: {'key1': [0.9], 'key2': [], 'key3': [0.9]},
 1: {'key1': [0.8], 'key2': [], 'key3': [0.8]},
 2: {'key1': [0.7], 'key2': [], 'key3': [0.7]}}

原理说明

字典推导式会循环每个主键i,每次都新建一个{'key1': [], 'key2': [], 'key3': []}字典,确保每个主键对应的嵌套字典都是独立的内存对象,修改其中一个不会影响其他。

内容的提问来源于stack exchange,提问作者Jamezco7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:55:18