次のような変数名のリストがあります。
['foo', 'bar', 'baz']
(最初に、変数のリストを変換する方法を尋ねました。以下の Greg Hewgill の回答を参照してください。)
これを、キーが変数名 (文字列として) で、値が変数の値である辞書に変換するにはどうすればよいですか?
{'foo': foo, 'bar': bar, 'baz': baz}
改めて質問させていただきましたが、以下のようになりました。
d = {}
for name in list_of_variable_names:
d[name] = eval(name)
それは改善できますか?
Update、なぜ私がこれをやりたいのかという質問(コメントで)に答えます:
補間する名前と値の辞書を含む文字列に % 演算子を使用することがよくあります。多くの場合、文字列内の名前は単なるローカル変数の名前です。だから(以下の答えで)私はこのようなことができます:
message = '''Name: %(name)s
ZIP: %(zip)s
Dear %(name)s,
...''' % dict((x, locals()[x]) for x in ['name', 'zip'])