我在python中有一个项目列表,如下所示: 输入:
a=['nt','mt','pt']
我想将上面列表中的每个项目作为变量,然后将该变量分配给涉及该变量的正则表达式。
输出: 我想要这样的东西:
nt=re.compile("%s=[a-z]+&" %nt)
mt=re.compile("%s=[a-z]+&" %mt)
pt=re.compile("%s=[a-z]+&" %pt)
我该怎么做呢? 谢谢。 [抱歉没有以最好的方式提出问题]
答案 0 :(得分:14)
Keep data out of your variable names.不要使用变量,使用字典:
d = {name: re.compile("%s=[a-z]+&" % name) for name in a}
答案 1 :(得分:1)
毫无疑问最好使用字典键,而不是变量。但是,Python变量中的FYI实际上存储在字典中,您可以通过调用vars()
或locals()
来访问它。这意味着 可以通过分配给这个词典来动态创建变量,例如:
>>> new_var_name = 'my_var'
>>> vars()[new_var_name] = "I'm your new variable!"
>>> print my_var
"I'm your new variable!"
说实话,我不知道如何篡改vars()
是合理的。但它至少有趣。无论如何,请使用Sven Marnach的答案。