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

无法为嵌套字典中的内层字典正确赋值的问题排查

问题原因分析

使用dict.fromkeys(iss, {a: None})创建字典时,所有键对应的都是同一个内层字典对象。fromkeys方法的特性是将第二个参数作为所有键的统一值,当这个参数是可变对象(比如字典)时,所有键都会共享该对象的引用。循环中每次修改swhls[i][a],本质都是在修改同一个内层字典,最后一次循环将值设为'4',因此所有键对应的结果都显示为这个最终值。

正确实现方案

方案一:字典推导式(最简洁)

通过字典推导式为每个键生成独立的内层字典,避免引用共享:

a = 'aa'
iss = ['1', '2', '3', '4']
swhls = {i: {a: i} for i in iss}
print(swhls)

方案二:循环初始化

先创建空字典,再逐个为键生成新的内层字典:

a = 'aa'
iss = ['1', '2', '3', '4']
swhls = {}
for i in iss:
    swhls[i] = {a: i}
print(swhls)

如果需要先初始化内层字典为{a: None}再赋值,可调整为:

a = 'aa'
iss = ['1', '2', '3', '4']
swhls = {}
for i in iss:
    swhls[i] = {a: None}  # 每个键对应全新的字典对象
    swhls[i][a] = i
print(swhls)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 23:42:35