我想在Python中创建10个变量,其中一个for
(不是数组)。
像这样:
for i in range(1,10,1)
variable i = 100 / i
print variable i
我想创建变量名,在这种情况下:
variable1
,variable2
,variable3
,...,variable10
我不想要数组
我有一张坐标图(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)
答案 0 :(得分:9)
永远不要创建带编号的变量名(可能是1或2,但从不是9.)而是使用列表或词典:
x = dict()
for i in range(1,10,1)
x[i] = 100 / i
print x[i]
(我在这种情况下使用了dict,因为i
从1开始。)但是,根据您希望进一步使用x
的方式,您可能希望使用列表。
也许我应该试着说服你拥有名为variable1
,variable2
等变量是一个坏主意。由于这些变量已编号,因此它们之间可能存在某种密切关系。也许他们都是数字。假设您想要将所有这些增加一个。您必须编写重复的代码,例如
variable1 += 1
variable2 += 1
variable3 += 1
... etc
而不是
for i in range(1,10,1):
x[i] += 1
或者您可能希望将所有这些变量都输入到函数中。你必须写
func(variable1, variable2, variable3, ...)
而不是
func(**x)
结论:编号变量名称很痛苦! 使用字典或列表可以避免痛苦。
答案 1 :(得分:3)
你不应该这样做,但如果你真的想
,可以for j in range(1,10,1):
exec('var_%d = j'%j)
我可以再次强调你不应该这样做,但我认为没有理由隐藏自我吊死的能力。
考虑到你要做什么,我会查看morphological operations。对于您要做的事情,有更好的算法。 (看起来你想要做的事情已经在scipy,examples)。
引用unutbu:
也许我应该试着说服你拥有名为variable1
,variable2
等变量是一个坏主意。由于这些变量已编号,因此它们之间可能存在某种密切关系。也许他们都是数字。假设您想要将所有这些增加一个。您必须编写重复的代码,例如
variable1 += 1
variable2 += 1
variable3 += 1
... etc
而不是
for i in range(1,10,1):
x[i] += 1
或者您可能希望将所有这些变量都输入到函数中。你必须写
func(variable1, variable2, variable3, ...)
而不是
func(**x)
结论:编号变量名称很痛苦! 使用字典或列表可以避免痛苦。