2013-12-23 84 views
2

如何能產生這種語法結果0,RESULT1,結果2等多種陣列..動態數組名

我嘗試這樣做這項工作:

for i in xrange(0, 7): 
     var_num = i 
     globals()['result%s' % var_num] = [] 
     globals()['result%s' % var_num].append(1000+i) 
     print ['result%s' % var_num][0] 

它給了我論文數組:

result0 
result1 
result2 
result3 
result4 
result5 
result6 

但我敢肯定有另一種方式做到這一點?...

感謝

+2

正確的答案是「不要」。你真正的用例是什麼?類似於列表的defaultdict可能更合適。 (另外:Python列表不是數組 - 有*庫爲Python提供數組,但這些不是它們 - 但這是一個單獨的討論)。 –

+1

http://nedbatchelder.com/blog/201112/keep_data_out_of_your_variable_names.html – wim

+0

在支持它的任何語言中,這通常不被認爲是一種好的做法。由於某些原因,請參閱[_你爲什麼不想創建動態變量_](http://stupidpythonideas.blogspot.com/2013/05/why-you-dont-want-to-dynamically-create.html)和[_Never使用動態變量名稱](http://www.techrepublic.com/blog/it-security/never-use-dynamic-variable-names/)。 – martineau

回答

3

如何使用字典。

>>> variables = {} 
>>> for i in xrange(0, 7): 
...  variables['result%s' % i] = [1000 + i] 
... 
>>> variables 
{'result6': [1006], 'result4': [1004], 'result5': [1005], 'result2': [1002], 'result3': [1003], 'result0': [1000], 'result1': [1001]} 
>>> variables['result2'] 
[1002] 
>>> variables['result6'] 
[1006] 
1

爲什麼你想要那樣?爲什麼不只是一個數組數組?當您將它們保存在另一個數組中時,您將能夠輕鬆地遍歷數組。