Python (2.x) で要素から添え字を調べる
(5/26 訂正*1 )
Python のリストの要素から添字を調べるには,リストのメソッドである list.index() を用います.
例
例えばある配列 keys (文字列が格納されているとする)とある配列 vals (数値とする)の並びが対応しており,vals の最大の値に対応する keys の文字列を取りたい状況だとします.
普通にディクショナリ(Pythonでいう連想配列)を使えよと言われる所ですが,何かの手違いで配列二個になり,ちょっと手直しで済ませたい状況です.
対話モードで,
>>> keys = ['a', 'b', 'c'] >>> vals = [1.0, 2.0, 3.0] >>> keys[vals.index(max(vals))] 'c'
連想配列でも可能なのですが,却って少し長くなるみたいです.
>>> dic = {'a':1.0, 'b':2.0, 'c':3.0} >>> dic.keys()[dic.values().index(max(dic.values()))] 'c'
*1:およそ3ヶ月越しの訂正ですが、dictオブジェクトを上書きしてしまってたことには記事書いて1週間以内に気づいていたことは自分のめいyのため申し添えておきます。なら直せよ…