2012-09-30 65 views
0

我有很多很多字符串,都是這樣格式化的:「lot1」,「lot2」,「lot3」...我想要做的是使用函數參數來確定使用哪個變量。這裏有一個pseudoexample:從變量設置變量?

def printlot(someInt): 
    print lot%i % (someInt) 

基本上,我想使用多個字符串,形成另一個字符串與行動的名稱。這看起來很簡單,但我在兩年的Pythoning中沒有學會如何去做。

+4

原因是,它通常是一個壞事情。 –

+1

改爲使用字典。創建一個名爲'lots'的字典,並通過'lots [i]'來訪問你的值。 – BrenBarn

回答

1

您可以訪問所有可見的變量使用vars內置函數的字典:

vars()['lot%d' % someInt] 

不同的範圍可以與globalslocals訪問。

但是,請注意,這通常被認爲是「不合理的」行爲。與其創建許多類似命名的變量,更多的Pythonic方法將是創建列表或字典。

2

nneonneo說的是正確的,但你真的想明確使用一個字典。也就是說,你想這樣做:

lot_data = {'lot1': 10, 'lot2': 20, 'lot3': 30} 
i = 2 
print lot_data['lot%d' % i] 

取而代之的是:

lot1 = 10 
lot2 = 20 
lot3 = 30 
i = 2 
print vars()['lot%d' % i]