作者: 藤岡和夫
日時: 2008/2/11(23:05)
On Sun, 10 Feb 2008 08:38:46 +0900
Kazuhiro NISHIYAMA <zn@...> さんwrote:

> At Tue,  5 Feb 2008 13:11:39 +0900 (JST),
> 機械伯爵 wrote:
> > 
> > > var1
> > > var2
> > > var3
> > > ...
> > > 
> > > という変数があって、
> > > それとは別にx と i という変数があったときに
> > > x = 'var'
> > > i = 1
> > > のようなときに、var1なる変数の値を取り出したいのだけどどうすればいいですか?
> > > ってのが定期的にでてきます。
> > > 
> > > でまあPerlならシンボリックリファレンス、PHPなら可変変数(だっけ?)という
> > > からくりを使えば割合簡単にできたりするわけですが、
> > 
> >  Pythonなら、eval("var" + str(1))かなぁ……
> 
> vars()["var" + str(1)]またはlocals()["var" + str(1)]では
> ないんでしょうか?
> 
> 
> -- 
> |ZnZ(ゼット エヌ ゼット)
> |西山和広(Kazuhiro NISHIYAMA)

試してみました。

-----^ testarray.py
var1 = 1
var2 = 2
var3 = 3
x = 'var'
i = 1
print eval("var" + str(1))
print vars()["var" + str(1)]
print locals()["var" + str(1)]
-----$

C:\Scripts\Python>python testarray.py
1
1
1

C:\Scripts\Python>


藤岡 和夫
kazuf@...
日曜プログラマのひとりごと http://homepage1.nifty.com/kazuf/renewal.html