人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Pythonの初歩に関する質問です。
Pythonで、新たに作成するオブジェクト名をプログラムによって決める(割り当てる)にはどうすればいいのでしょうか。
たとえばfor等のループ中の処理で、list1、list2、list3といった名前のリスト型のオブジェクトを次々に生成したい場合などです。

統計処理でRを使うことがあるのですが、Rだとassignという関数を使うことで、新たに生成するオブジェクトの名前と、そこに放り込む中身を同時にプログラムによって指定することができました。

●質問者: 夜会
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント ベストアンサー

exec 文か、eval 関数を使います。
http://docs.python.jp/2/reference/simple_stmts.html#exec
http://docs.python.jp/2/library/functions.html#eval

でも、たいていの場合は配列か辞書型(ディクショナリ)で間に合うと思います。


夜会さんのコメント
ありがとうございます。助かりました。 代入を表すコードをstringとして自動生成し、exce()に入れたら出来ました。evalの方はまだ確認できていません。 参考に、配列か辞書で間に合うとは、どういう意味でしょうか?

mjyさんのコメント
http://ja.stackoverflow.com/questions/18780/ が似た話題ですので参考にして下さい。

a-kuma3さんのコメント
既にコメントがついてるので、そちらで十分かな、という気もしますが。 >> 参考に、配列か辞書で間に合うとは、どういう意味でしょうか? << 数字が変わってゆくなら、list1、list2 という変数名ではなく、配列(リスト)のインデックスを変えれば良いじゃない、ということです。 >|python| list = [] for i in range(5) list[i] = ... ||<

夜会さんのコメント
つまり、連続した名前のつけられたオブジェクトをバラバラに生成しなければならない場面というのはあまりなく、まとめてリストの要素として扱っておけばよいし、名前でアクセスしたいなら辞書にしておけばいいということですね。 理解しました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ