python 中要動態生成一系列變量名,要寫一個程序,讓a1=1,a2=2,… a100=100
通常類似於matlab 中,可以使用eval,但是實際上根本不需要這種危險的東西,因為Python的變量名就是一個字典的key而已。要獲取這個字典,直接用locals和globals函數即可。
1 names = locals() #獲取當前程序段中的全體局部變量名 2 for i in np.arange(0,10): 3 names['t%s'%i]=i
這里的 local() 是一個存儲了全體局部變量名及其值的字典
不過你也許會說這個例子沒什么用,畢竟對於這個例子用數組來實現更為實用。
但是,當需要算法生成一系列模型時,通過這種動態的賦予模型名的方式,就可以起到很大的作用了
最近突然想到根本不需要這么復雜,只要知道 python 提供了 list, 而 list 內的元素是可以為任何類型,且可以不相同的,使用 list 即可。python 把幾乎所有的東西都當做了 “對象“,使用起來非常方便。
1 A = [None]*20 2 for i in np.arange(10): 3 A[i] = i ### use A[1] to represent a1
甚至可以使用一個 list 把生成的多個模型(函數)存儲起來,方便調用。
