#acl SomeUser:read,write All: = Pythonで可変変数 = . ある変数の値を変数名として使用できる変数のことを、perlでは可変変数と読んでいるようです。 {{{ % perl -e '$var1="var2"; $var2="Value of var2"; print "$$var1\n"' Value of var2 % }}} 記号を使うと簡潔に表現でき、記号にも良い面があることが分かります。 . Python でこれを実現するにはどうすれば良いでしょうか? 具体的な例として、「年齢」という引数を受け取って、「年齢別件数」という名前の辞書を返す場合を考えます。マニュアルを見たり、インターネットを検索しても難解な解説ばかりで、インスタントな実現方法を見つけることが出来ませんでした。そこで代用となるやり方を考えて見ました。 . まず、変数の値を変数名として評価し、値を展開するには、evalを使うのが簡単だと思います。 {{{#!python var1 = 'var2' var2 = 'Value of var2' eval(var1) 'Value of var2' }}} . ただ、これだと代入文の左辺では使えません。多少乱暴ですが、 {{{#!python arg = "nenrei" exec('dict_' + arg + ' = {}') >>> dict_nenrei {} }}} とすれば、目的とする名前の辞書が作られたことが分かります。 . でも良く考えてみると本当に実現したのは、「ある名前に対応する値(この場合はそれを変数名として見た場合のその変数の内容)を返す」ことです。途中の操作が必要無ければ(始まりと結果だけ見れば)、これは辞書そのものです。 {{{#!python valueOf['nenrei'] = {} valueOf['nenrei'] = {'nenrei': 'kensuu'} >>> valueOf['nenrei'] {'nenrei': 'kensuu'} }}} ---- CategoryPython