2010-02-13 150 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