2013-05-26 96 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字典也。

希望有所帮助。