写在前面:根据变量的值更改变量名会导致不必要的复杂化。更简洁的方法是使用字典:
vr={}
for n in alist:
vr[n]=some_calculation()
------------------------分割线----------------------------------------------------------------
在python内有一个内置函数locals()能够将当前范围内的所有变量以字典的形式给返回出来,在没有变量的时候就会返回一个空的字典,但是这个字典表示的还是变量名和值。
所以只需要使用一个变量来接收locals()函数返回的变量名字典,然后通过for循环去给修改字典内的元素并将其赋值。因为这个字典原本是用来保存变量的,但是在没有边类的情况去修改它就相当于是声明变量。
最后在for循环之中使用切片的方式获取到变量字典对象,并使用英文加动态数字的方式去给变量命名并赋值,代码示例如下所示:
names = locals()
for i in xrange(1, 101):
names['x%s' % i] = i
>>> x1
1
>>> x2
2
>>> x100
100
从得到的结果来看就可以知道变量x1-x100都已经通过动态的方式声明成功了。
其他方法参考:https://www.runoob.com/w3cnote/python-dynamic-var.html