Python中使用字符串(由变量和字符串拼接而成)作为新变量名?
我一直在寻找这个问题的答案,但对我想做的事情具体怎么操作还是有点困惑。我想把一个字符串拼接起来(在这种情况下应该是字符串,因为它包含了一个变量和字符串),像下面这样,我需要用一个包含字符串的变量来调用一个有索引的列表(这个索引来自另一个变量)。我把代码简化了,只展示相关部分,因为这是一个宏的一部分,用来替换值:
toreplacetype = 'type'
toreplace_indx = 5
replacement_string = 'list'+toreplacetype[toreplace_indx]
所以……我想让最后一行的字符串等于实际的变量名:
replacement_string = listtype[5]
任何关于如何做到这一点的建议都非常感谢。
编辑:
进一步解释一下,这个宏有点像一个模板系统,我在一个Python脚本中指明我想用特定值替换的内容,所以我使用正则表达式来实现这个功能。当我匹配到某个内容时,我想从一个列表中的特定值进行替换。例如,在模板中我有{{type}},我提取了这个值,但接下来我需要像上面那样处理它,以便我可以用提取出来的值"type"来调用列表中的特定值(比如从一个叫"listtype"的列表中)。因为有不止一个列表,所以我需要找到叫"listtype"的那个,所以我想像上面那样拼接,以便根据我用正则表达式提取的值来实现这个目标。
3 个回答
0
replacement_string = 'list'+toreplacetype+'['+str(toreplace_indx)+']'
打印出来的时候会显示 listtype[5]。
你需要把它分成5个部分:1个字符串变量,3个字符串,还有一个被转换成字符串的整数。
我觉得这就是你想问的吧?
1
嗯……
globals()['list%s'% toreplacetype][toreplace_indx]
1
这不太推荐。建议使用字典(dict)来代替。
vars['list%s' % toreplacetype][5] = ...