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

Python中如何将Tkinter下拉菜单选中的两个字符串拼接后引用对应字典

原因

你拼接得到的combined是字符串类型,Python不会自动将与变量名完全相同的字符串解析为对应的变量实例,因此你尝试对字符串执行字典索引操作会直接报错。

解决方案

方案1:通过全局变量字典快速取值(适合临时场景)

如果你的sizeschedule定义在全局作用域,可以直接调用Python内置的globals()字典,通过字符串key拿到对应的字典对象:

sizeschedule = {'1': 'one', '2': 'two'}

# 下拉菜单选择完成后,你从StringVar中获取到如下值:
firstdropdown = 'size'
seconddropdown = 'schedule'
combined = firstdropdown + seconddropdown  # 得到字符串 'sizeschedule'

print(globals()[combined]['1'])
# 输出结果:one

方案2:统一映射收纳(生产环境推荐)

直接操作全局变量容易出现命名冲突、变量意外修改的问题,更稳妥的方式是提前把所有待匹配的字典收纳到一个总映射表中:

sizeschedule = {'1': 'one', '2': 'two'}
# 后续新增其他同类字典也可以直接加在这个映射表里
config_mapping = {
    "sizeschedule": sizeschedule
}

# 下拉菜单选择完成后,你从StringVar中获取到如下值:
firstdropdown = 'size'
seconddropdown = 'schedule'
combined = firstdropdown + seconddropdown  # 得到字符串 'sizeschedule'

print(config_mapping[combined]['1'])
# 输出结果:one

如果你的字典定义在函数内部的局部作用域,临时场景也可以将globals()替换为locals()取值,依然优先推荐用统一映射的方案。

内容的提问来源于stack exchange,提问作者Multiple Use Labor Element

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:24:04