動的に変数を定義
最初に結論、基本的に配列でいいと思う。
いつもformatで動的に文字列などを作成しているが、
変数も動的に定義しようと思ったらどうすんのかと思ったので備忘録。
使いたいなと思ったシチュエーションは、dfで df['name_{}'.format(x)]
みたいな感じで特徴量生成してて、
それをname部分も変えて二重に回したかった。
改めて考えると、やっぱり配列(keyを動的に定義)でいい。
やり方
exec
で定義すればいいらしい。
eval
で行うとグローバル変数になるので要注意。
※ eval
では変数定義はできないそうです。コメントでご指摘いただきました。(2018/10/17追記)
サンプルコード
names = ['aaa', 'bbbb', 'ccccc']
for name in names:
x = len(name)
exec('{} = {}'.format(name, x))
print(aaa) # 3
print(bbbb) # 4
print(ccccc) # 5
なんかにつかえるといいな。