我在 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)
我该怎么做呢???谢谢。[抱歉没有以最好的方式提出问题]
将数据保留在变量名之外。不要使用变量,使用字典:
d = {name: re.compile("%s=[a-z]+&" % name) for name in a}
毫无疑问最好使用字典键,而不是变量。但仅供参考,Python 中的变量实际上无论如何都存储在字典中,您可以通过调用vars()
or来访问它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 的答案。