如何通过字符串调用同名变量?Python循环场景技术求助
解决方案
你现在的核心问题是想通过字符串(比如"aX")获取同名变量的值,而不是把这个字符串转成整数(这必然报错,因为"aX"不是数字格式)。下面给两种可行的处理方式:
方法一:用字典存储变量(推荐)
把所有类似aX、aY的变量统一存到字典里,通过字符串键来取值,这种方式更规范、安全,也方便管理:
# 预先定义所有需要的位置变量,存入字典 pos_dict = { 'aX': 10, 'aY': 20, 'bX': 30, 'bY': 40, # 继续补充cX到hX、cY到hY的变量值 } letters = "abcdefgh" for i in letters: posX_key = i + "X" posX = pos_dict[posX_key] # 通过字符串键获取对应变量值 posY_key = i + "Y" posY = pos_dict[posY_key] # 这里可以直接用posX、posY进行计算 print(f"{i}位置的X值:{posX},Y值:{posY}")
方法二:通过全局/局部变量字典取值(不推荐)
如果你的aX、aY是全局变量,可以借助globals()函数获取全局变量字典,通过字符串键取值,但这种方式容易导致变量管理混乱,不建议在复杂场景使用:
# 预先定义全局变量 aX = 10 aY = 20 bX = 30 bY = 40 # ...其他变量 letters = "abcdefgh" for i in letters: posX_key = i + "X" posX = globals()[posX_key] # 从全局变量字典中获取对应值 posY_key = i + "Y" posY = globals()[posY_key] # 后续计算逻辑
内容的提问来源于stack exchange,提问作者rin galagali
相关产品推荐
相关产品推荐

