Python中能否将变量值作为其他变量名的一部分访问变量?
Python中通过变量值拼接变量名访问对应变量的方法
可以实现,但直接操作全局/局部命名空间不是最佳实践,更推荐用字典来管理这类有规律的变量,以下是具体实现方式:
方法一:通过globals()/locals()操作命名空间(不推荐)
Python的globals()函数会返回当前全局作用域的字典,其中键是变量名,值是变量对应的内容。你可以通过拼接变量名字符串作为键,来获取目标变量的值:
a1 = "First" a2 = "Second" a3 = "Third" b = 2 # 拼接出目标变量名"a2",从全局字典中取值 print(globals()[f'a{b}']) # 输出: Second
如果是在函数内部的局部变量,可替换为locals(),但这种方式容易误操作其他变量,调试和维护起来也麻烦,不建议在正式代码中使用。
方法二:使用字典存储(推荐)
把这类有规律的变量统一放进字典里,通过键来访问对应的值,逻辑更清晰,也更符合Python的编码规范:
# 用字典存储所有相关变量,直接用数字作为键更简洁 a_vars = { 1: "First", 2: "Second", 3: "Third" } b = 2 # 直接用b的值作为键取值 print(a_vars[b]) # 输出: Second # 如果需要保留"a1"这类键名,也可以这样写 a_vars = { "a1": "First", "a2": "Second", "a3": "Third" } print(a_vars[f'a{b}']) # 输出: Second
内容的提问来源于stack exchange,提问作者Peter_Brown_USA
相关产品推荐
相关产品推荐

