10

k1、k2 k3....k52という名前の変数のグループがあります。それらの変数は、シナリオに応じてリスト/numpy配列です。基本的に、ループ内でそれらに対して同じ操作をまとめて実行したいのですが、それらを操作するのに問題があります。基本的に私が欲しいのはこのようなものです:

for i in arange(0,52):
  'k'+ str(i) = log10(eval('k' + str(i)))

明らかに私は上記がうまくいかないことを知っています、しかしそれは考えを与えます。私の実際の試みはこれです:

for i in arange(0,10):

   rate = eval('k' + str(i))
   rate = np.array(rate,dtype=float)
   rate = log10(rate)
   rate.tolist()
   vars()[rate] = 'k' + str(i)

(ログに記録できるようにnumpy配列に変更してから、リストに戻って変数名を元の状態に戻します)ご協力いただきありがとうございます。これは非常に単純なことだと思いますが、現時点ではそれは私を逃れています。

編集:答えてくれてありがとう、私はそれらを実際にはセット配列に格納できないことを説明する必要がありました、私が本当に入りたくない理由のためにそれらは独立変数として残る必要があります。

4

2 に答える 2

6

この線:

vars()[rate] = 'k' + str(i)

次のように置き換える必要があります。

vars()['k' + str(i)]=rate
于 2013-03-01T16:12:06.587 に答える
4

アイテムがすべてグローバルである場合は、globals()呼び出しを使用してマッピングを取得し、それらを操作できます。

g = globals()

for i in arange(0,52):
    varname = 'k{}'.format(i)
    g[varname] = log10(g[varname])

しかし、あなたは本当にそれらすべてのアイテムを代わりにリストまたは辞書に保存したいだけです。

于 2013-03-01T15:56:24.577 に答える