2010-02-13 151 views
2

我想将变量的值插入到python中另一个变量的名称中。在一个外壳脚本,这将是这样的:python:将变量值插入变量名

for n in `more list` 
do 
var_$n = some_calculation 
done 

但我看不出如何在python中做类似的事情。有没有办法或者我应该使用另一种方法?
谢谢,
Andy

+0

在shell脚本中,这也是不正确的。你必须使用'eval' – ghostdog74 2010-02-14 02:19:10

回答

0

dict是一种维护关联数组的方法。

dict = {} 
dict[str] = calc(); 
+2

永远不要命名你的字典“'dict'”;这会影响内建的'dict',这是字典类型,您可能需要在某些时候调用它。 – 2010-02-13 22:34:57

6

不要这样做!具有根据变量的值而变化的变量名会导致不必要的复杂性。一个清洁的方法是使用一个字典:

vr={} 
for n in alist: 
    vr[n]=some_calculation() 
+0

谢谢! (和其他答复)。这看起来不像我的shell脚本方法那么脆弱。 – AndyC 2010-02-13 22:14:32

+0

是的这个任务字典是好的,但是什么时候有一些值到达,我有常量定义的值已经..我只是可以捕获异常,并做:'尝试:类。$ {TYPE} ...'我知道这来自php,但它可以节省很多神经.. – holms 2013-03-19 10:23:55

0

也许不是完美的,但有两个可能的解决方案:

 
>>> name = "var_1" 
>>> locals()[name] = 5 
>>> print var_1 
5 
>>> exec(name + "= 6") 
>>> print var_1 
6 
+0

但请注意,'locals()'方法在函数内部不起作用。看到这里:http://forums.devshed.com/python-programming-11/dynamic-variable-declaration-140173.html它仍然有效,我测试了它。 – 2010-02-13 22:08:59

0
for n in more_list: 
    globals()["var_"+str(n)]=some_calculation