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

Python如何在变量名中引入另一个变量的取值?

解决方案

方案1:使用字典存储(最推荐)

动态生成独立变量名不符合Python最佳实践,用字典管理同系列变量更易维护、安全性更高。

# 初始化空字典存储所有game_battles相关变量
game_battles = {}
for m in range (1,4):
    if m ==1:
        suffix = "top"
    elif m == 2:
        suffix = "mid"
    elif m == 3:
        suffix = "btm"
                
    game_battles[suffix] = [["Match", "Winner", suffix]]
    print(game_battles[suffix])

# 后续使用方式示例
# 取top对应列表:game_battles["top"]
# 取mid对应列表:game_battles["mid"]

该方案优势:

  • 避免全局命名空间污染
  • 遍历、批量操作所有同系列变量更便捷,直接循环game_battles.items()即可
  • 不会出现变量名拼写错误导致的隐性bug

方案2:直接生成全局变量(不推荐,仅作参考)

如果确实需要生成game_battles_top这类独立全局变量,可以用globals()内置函数操作全局命名空间实现:

for m in range (1,4):
    if m ==1:
        suffix = "top"
    elif m == 2:
        suffix = "mid"
    elif m == 3:
        suffix = "btm"
    # 操作全局命名空间生成变量
    globals()[f"game_battles_{suffix}"] = [["Match", "Winner", suffix]]
    print(globals()[f"game_battles_{suffix}"])

# 后续可以直接用变量名访问
print(game_battles_top)
print(game_battles_mid)
print(game_battles_btm)

该方案缺陷:

  • 容易污染全局命名空间,和其他变量重名会导致难以排查的bug
  • 代码静态检查工具无法识别动态生成的变量,会报未定义错误
  • 批量操作这类变量比字典方案更繁琐

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:45:02