如何在Python中增加变量名?

0 投票
4 回答
2215 浏览
提问于 2025-04-18 14:43

我正在制作一个模拟程序。

在程序开始之前,我用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]}

撰写回答