如何在python中将项列表转换为变量?

时间:2012-07-23 16:52:32

标签: python regex list

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

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

2 个答案:

答案 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的答案。