3

我在 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)

我该怎么做呢???谢谢。[抱歉没有以最好的方式提出问题]

4

2 回答 2

15

将数据保留在变量名之外。不要使用变量,使用字典:

d = {name: re.compile("%s=[a-z]+&" % name) for name in a}
于 2012-07-23T16:54:17.310 回答
0

毫无疑问最好使用字典键,而不是变量。但仅供参考,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 的答案。

于 2012-07-23T17:28:42.303 回答