2013-05-26 73 views
2

我有這樣的代碼:獲取對應的最大值在列表中的變量名

timeLS1 = 0.1 
timeLS2 = 0.2 
timeLS3 = 0.15 
timeLS4 = 0.5 
timeLS5 = 0.4 
timeLS6 = 0.3 
timeLSv = (timeLS1, timeLS2, timeLS3, timeLS4, timeLS5, timeLS6) 
timeLS = max(timeLSv) 
print timeLS 
index_max = timeLSv.index(timeLS) 
print index_max 

我想獲得的最大(timeLS),加上對應的變量(timeLS1, ...., timeLS6)的名稱最大。

這樣做的最簡單方法是什麼(而不是如果循環後得到index_max)?

感謝

回答

2

不知道這是最好的方法,但看起來很不錯:

timeLS1 = 0.1 
timeLS2 = 0.2 
timeLS3 = 0.15 
timeLS4 = 0.5 
timeLS5 = 0.4 
timeLS6 = 0.3 

data = {key: value for key, value in locals().iteritems() if 'timeLS' in key} 

key, value = max(data.iteritems(), key=lambda x: x[1]) 
print key, value # prints 'timeLS4 0.5' 

你可能想避免產生額外的data字典也。

希望有所幫助。