リストを作成し、プログラムを実行した後にしかわからない名前を付けたいと思います。
例えば:
#making shelfs
group_number = 1
group_name = 'group' + str(group_number)
print group_name
group_name は次のようになります: group1
ここで、group1 という空のリストを作成します。そのようなことをする方法は?
リストを作成し、プログラムを実行した後にしかわからない名前を付けたいと思います。
例えば:
#making shelfs
group_number = 1
group_name = 'group' + str(group_number)
print group_name
group_name は次のようになります: group1
ここで、group1 という空のリストを作成します。そのようなことをする方法は?
通常、これを辞書に入れるだけです。
d = {group_name:[]}
これで、辞書を介してリストにアクセスできるようになりました。例えば:
d['group1'].append('Hello World!')
globals()
別の方法は、関数の結果 (辞書) を変更することです。これは間違いなく悪い習慣であり、避けるべきですが、使用しているツールについてもっと知ることは常に良いことなので、ここに含めます。
globals()[group_name] = []
group1.append("Hello World!")
「group」で始まる変数の疑似名前空間を作成したいと考えています。代わりに dict を使用しないのはなぜですか?
#making shelfs
groups = {}
group_number = 1
name = str(group_number)
groups[name] = [] # or whatever
print groups[name]
関連オブジェクトのコレクションごとに新しい名前空間を作成することをお勧めしているため、これは @mgilson の回答とは微妙に異なります。
これをして:
locals()['my_variable_name'] = _whatever_you_wish_
また
globals()['my_variable_name'] = _whatever_you_wish_
また
vars()['my_variable_name'] = _whatever_you_wish_
自分で違いを見つけるためにGoogle :P