我正在制作模拟程序。
我在启动程序之前用python list手动编写一些粒子的初始条件,例如
var1 = [mass_a, velocity_a, velocity_a]
var2 = [mass_b, velocity_b, velocity_b]
...
然后如何在for循环中更改变量中的数字?我试过的东西是
for i in range(2):
print(var+str(i))
但他们没有工作
答案 0 :(得分:4)
永远记住
如果您必须在示例中为数字后缀的变量命名,则应考虑顺序可索引数据结构,如数组或列表。在Python中创建一个List我们
var = [[mass_a, velocity_a, velocity_a],
[mass_b, velocity_b, velocity_b]]
如果您必须使用不同的后缀命名变量,例如
var_A=[mass_a, velocity_a, velocity_a]
var_B=[mass_b, velocity_b, velocity_b]
您应该考虑非顺序可索引数据结构,如hashmap或dictionary。这个字典的关键应该是变化的后缀,值应该是分配给相应变量的值在Python中创建我们所做的字典
var = {'A':[mass_a, velocity_a, velocity_a],
'B':[mass_b, velocity_b, velocity_b]}
答案 1 :(得分:0)
您可以将变量var1,var2,...放入列表并遍历列表,而不是依赖编号的变量名吗?
示例:
vars = [var1, var2]
for var in vars:
do_something(var)
答案 2 :(得分:0)
在这里成为魔鬼的拥护者,你可以使这种方法如下工作。
for i in range(2):
print( globals()["var"+str(i+1)] )
答案 3 :(得分:0)
您可以将变量放在列表中并像上面一样迭代,
var_list = [var_a,var_b...]
for var in var_list:
print var
或者,您可以将变量放在字典中,如
var_dict = {"var_a":var_a,"var_b":var_b,...}
for var in var_dict:
print var_dict(var)