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

変数ではなく、辞書のキーを使用するのが間違いなく最善です。しかし、FYI の Python 変数は実際にはディクショナリに格納されており、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の答えを使用してください。

于 2012-07-23T17:28:42.303 に答える