如何在Python中增加变量名?
我正在制作一个模拟程序。
在程序开始之前,我用Python的列表手动写了一些粒子的初始条件,比如:
var1 = [mass_a, velocity_a, velocity_a]
var2 = [mass_b, velocity_b, velocity_b]
...
那么我该如何在for循环中改变这个变量的数值呢?我尝试过的方法是:
for i in range(2):
print(var+str(i))
但是这些方法都不奏效。
4 个回答
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)
0
你能把你的变量 var1、var2 等放到一个列表里,然后通过这个列表来循环处理,而不是依赖那些带数字的变量名吗?
举个例子:
vars = [var1, var2]
for var in vars:
do_something(var)
1
为了让大家更好理解,我来举个反例,看看这种方法怎么能奏效。
for i in range(2):
print( globals()["var"+str(i+1)] )
5
记住这一点
如果你需要给变量命名,并且这些变量的名字后面有数字,比如你的例子中那样,你可以考虑使用一种顺序可索引的数据结构,比如数组或列表。在Python中,我们可以这样创建一个列表:
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]
那么你应该考虑使用一种非顺序可索引的数据结构,比如哈希表或字典。这个字典的键应该是不同的后缀,而值则是分配给相应变量的值。在Python中,我们可以这样创建一个字典:
var = {'A':[mass_a, velocity_a, velocity_a],
'B':[mass_b, velocity_b, velocity_b]}