我希望变量的变量数量变量等于数组。我知道有类似的问题已被提出,但没有提供我正在寻找的答案。我已经尝试过变量顶部和底部的元组或numpy数组,但都没有工作。我不关心数字的类型是什么,因为我可以稍后转换它们,我只需要在每次迭代时更改变量名称。
i=[0]
for x in i:
top= (1,1,1)
bottom= (1,1)
top[i]=top
bottom[i]=bottom
i.append(x+1)
谢谢您的帮助。
编辑:这是一个可能更好地解释我正在尝试做什么的例子。
for x in range(1,4):
top = (1,1,1)
bottom = (1,1)
if x == 1:
top1 = top
bottom1 = bottom
if x == 2:
top2 = top
bottom2 = bottom
if x == 3:
top3 = top
bottom3 = bottom
在底部代码中,我每次迭代都会创建一个新变量,但我只是在一定量的迭代中进行。如何进行无限量的迭代?
对于您提供的第一个示例,其行为很可能不是您所期望的,因为您在i
时修改了列表simultaneously iterating across it。
至于你的第二个例子,你所要求的是不可取的,而且几乎肯定不是你真正想要做的。有关更多信息,请参阅this question和this other one。
最后,我怀疑这实际上是解决问题的最佳方法,但您可以使用dictionary完成(大致)您在问题中尝试做的事情。
d = {}
v1 = (1,1,1)
v2 = (1,1)
for x in range(4):
key1 = 'top' + str(x)
d[key1] = v1
key2 = 'bottom' + str(x)
d[key2] = v2