如何动态访问字符串值?循环中按需获取指定字符串变量值
解决方案:根据循环变量获取对应字符串值
方法1:贴合原框架的实现方式
如果要严格适配你给出的代码框架,可以通过globals()函数获取全局变量字典,动态拼接变量名来取值:
Str1 = "select * from tableA" Str2 = "select * from tableB" Src = "Str" for i in range(1,3): # 拼接变量名并从全局字典中取出对应值 new_str = globals()[f"{Src}{i}"] print(new_str)
运行后会依次输出:
select * from tableA select * from tableB
方法2:更规范的推荐方案
动态拼接变量名的写法可读性和维护性较差,更推荐用字典存储索引与字符串的对应关系,逻辑更清晰:
# 用字典建立索引和字符串的映射 str_map = { 1: "select * from tableA", 2: "select * from tableB" } for i in range(1,3): new_str = str_map[i] print(new_str)
后续要新增或修改对应关系时,直接调整字典即可,避免了动态操作变量名的潜在风险。
内容的提问来源于stack exchange,提问作者user1768029
相关产品推荐
相关产品推荐

