0

forPython(配列ではない)で1つを使用して10個の変数を作成したいと思います。このようなもの:

for i in range(1,10,1)
    variable i = 100 / i
    print variable i

変数名を作成したいのですが、この場合: variable1、、、...、variable2配列 は必要ありませんvariable3variable10

座標マップ(640 x 480)があります。ピクセルの色が白の座標を特定しています。地面に3つのボールがあるので、各ボールの中心座標を取得したいので、評価される座標が最後の座標に近い場合、座標がaに属していれば、x座標とy座標が平均化されます。座標が新しい座標グループに属する新しいボールが評価されます。

p=0
h=0
for j in range(1,480,1):
   for i in range(1,640,1):
      c=cv.Get2D(image,j,i)
      if c[0] == 255:
        old_coord X  = new_coord x
        new_coord x += [(i,j)]
        if (old_coord x - 5 < new_coord x < old_coord x + 5)
            averx x = averx x + i
            avery x = averx x + j
            count x = count x + 1
        else
            p = p + 1
            new_coord x += [(i,j)]
average(averx1 , count 1)
average(avery1 , count 1)
average(averx2 , count 2)
average(avery2 , count 2)
4

2 に答える 2

10

番号付きの変数名を作成しないでください(1または2かもしれませんが、9は作成しないでください)。代わりに、リストまたはdictを使用してください。

x = dict()
for i in range(1,10,1)
    x[i] = 100 / i
    print x[i] 

(この場合、1から始まるため、dictを使用しiました。)ただし、xさらに使用する方法によっては、代わりにリストを使用することもできます。


variable1たぶん、、variable2などの名前の変数を持つことは悪い考えであることをあなたに納得させようとする必要があります。これらの変数には番号が付けられているため、おそらく互いに密接な関係があります。おそらくそれらはすべて数字です。それらすべてを1つインクリメントしたいとします。次のような反復的なコードを作成する必要があります

variable1 += 1
variable2 += 1
variable3 += 1
... etc

それ以外の

for i in range(1,10,1):
    x[i] += 1

または、これらすべての変数を関数にフィードしたい場合もあります。あなたは書く必要があるでしょう

func(variable1, variable2, variable3, ...)

それ以外の

func(**x)

結論:変数名に番号を付けるのは面倒です!口述またはリストを使用して、苦痛から身を守ってください。

于 2012-10-27T02:06:15.010 に答える
6

あなたはこれをすべきではありませんが、あなたが本当に望むならあなたはそうすることができます

for j in range(1,10,1):
    exec('var_%d = j'%j)

もう一度強調してもいいですか。これを行うべきではありませんが、自分を吊るす能力を隠す理由はありません。

あなたがやろうとしていることを考えると、私は形態学的操作を調べます。あなたがやろうとしていることのためのより良いアルゴリズムがあります。(あなたがやりたいことはすでにscipyにあるようです)。


unutbuの引用:

variable1たぶん、、variable2などの名前の変数を持つことは悪い考えであることをあなたに納得させようとする必要があります。これらの変数には番号が付けられているため、おそらく互いに密接な関係があります。おそらくそれらはすべて数字です。それらすべてを1つインクリメントしたいとします。次のような反復的なコードを作成する必要があります

variable1 += 1
variable2 += 1
variable3 += 1
... etc

それ以外の

for i in range(1,10,1):
    x[i] += 1

または、これらすべての変数を関数にフィードしたい場合もあります。あなたは書く必要があるでしょう

func(variable1, variable2, variable3, ...)

それ以外の

func(**x)

結論:変数名に番号を付けるのは面倒です!口述またはリストを使用して、苦痛から身を守ってください。

于 2012-10-27T02:17:17.070 に答える