创build多个variables

我想在Python中创build10个variables(不是数组)。 像这样的东西:

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

我想创buildvariables名,在这种情况下: variable1variable2variable3 ,…, variable10我不想要一个数组

我有一个坐标图(640 x 480)。 我正在识别像素颜色为白色的坐标。 地球上有3个球,我想要得到每个球的中心坐标,所以如果被评估的坐标与最后一个坐标相近,那么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) 

你不应该这样做,但你可以如果你真的想要

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

我可以再次强调你不应该这样做 ,但我没有理由隐藏自我的能力。

鉴于你想要做什么,我会寻找形态操作 。 对于你正在做的事情,有更好的algorithm。 (它看起来像你想要做的事情已经在scipy , 例子 )。


引用unutbu:

也许我应该试着说服你,有名为variable1variable2variable2是一个坏主意。 由于这些variables是有编号的,所以它们可能有一些密切的关系。 也许他们都是数字。 假设你想把它们全部加一。 你必须编写重复的代码,如

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

代替

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

或者也许你想把所有这些variables提供给一个函数。 你必须写

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

代替

 func(**x) 

结论:编号variables名称是一个痛苦! 通过使用字典或列表保存自己的痛苦。

永远不要创build编号的variables名(1或2也许,但从来没有9.)而是使用列表或字典:

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

(我在这种情况下使用了字典,因为i从1开始)。但是,根据您希望如何使用x进一步,您可能需要使用列表。


也许我应该试着说服你,有名为variable1variable2variable2是一个坏主意。 由于这些variables是有编号的,所以它们可能有一些密切的关系。 也许他们都是数字。 假设你想把它们全部加一。 你必须编写重复的代码,如

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

代替

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

或者也许你想把所有这些variables提供给一个函数。 你必须写

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

代替

 func(**x) 

结论:编号variables名称是一个痛苦! 通过使用字典或列表保存自己的痛苦。