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

字典条目未按预期存储,如何调整以获取期望输出?

问题解决:嵌套字典内层对象重复输出的问题

你的核心问题是key2对应的内层字典和key1指向了同一个内存对象,导致遍历输出时两次打印相同内容。即使你写的字典定义看起来是两个独立的内层字典,实际运行中可能存在引用复用的情况(比如用同一个变量赋值给两个外层键)。

正确的字典定义方式

确保两个内层字典是完全独立的对象,直接显式定义即可:

replace_dict = {
    "key1": {"abc": "ABCDE", "XYZ": "WXYZ"},
    "key2": {"Alabama": "AL", "Alaska": "AK"}
}

如果是后续赋值导致的引用复用

如果你是先创建了一个内层字典,再将其同时赋值给key1和key2(如下错误示例):

# 错误写法:两个外层键指向同一个内层字典
inner_dict = {"abc": "ABCDE", "XYZ": "WXYZ"}
replace_dict = {
    "key1": inner_dict,
    "key2": inner_dict
}

需要修改为创建新的内层字典,避免引用共享:

# 正确写法1:直接定义新的内层字典
inner_dict = {"abc": "ABCDE", "XYZ": "WXYZ"}
replace_dict = {
    "key1": inner_dict,
    "key2": {"Alabama": "AL", "Alaska": "AK"}
}

# 正确写法2:基于已有字典复制后修改(如果需要复用部分内容)
replace_dict = {
    "key1": inner_dict,
    "key2": inner_dict.copy()  # 创建字典副本
}
# 再修改key2对应的副本内容
replace_dict["key2"]["Alabama"] = "AL"
replace_dict["key2"]["Alaska"] = "AK"

验证输出

执行以下代码即可得到你期望的结果:

print(replace_dict.items())
for val in replace_dict.values():
    print(val)

输出结果:

dict_items([('key1', {'abc': 'ABCDE', 'XYZ': 'WXYZ'}), ('key2', {'Alabama': 'AL', 'Alaska': 'AK'})])
{'abc': 'ABCDE', 'XYZ': 'WXYZ'}
{'Alabama': 'AL', 'Alaska': 'AK'}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:15:42