Pythonの初歩に関する質問です。

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

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

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2015/11/16 23:44:22
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント100pt

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

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

他2件のコメントを見る
id:a-kuma3

既にコメントがついてるので、そちらで十分かな、という気もしますが。

参考に、配列か辞書で間に合うとは、どういう意味でしょうか?

数字が変わってゆくなら、list1、list2 という変数名ではなく、配列(リスト)のインデックスを変えれば良いじゃない、ということです。

list = []
for i in range(5)
    list[i] = ...
2015/11/15 10:48:27
id:midnightseminar

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

2015/11/16 23:43:59

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません