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

これを行う最も簡単な方法は何ですか (取得後に if ループを実行する代わりにindex_max)?

ありがとう

4

1 に答える 1

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追加の辞書も作成することを避けたい場合があります。

それが役立つことを願っています。

于 2013-05-26T16:03:24.323 に答える