0

私はリストを持っていますa、そして私max(a)は最大値を取得するために使用します。次のステップではenumerate()、最大値の最初の位置を取得するために使用しようとしています。enumerate()しかし、intリストにしか使用できないことに気づきましたか?フロートリストはどうですか?float(intも含む)リストの最大値の最初の位置を取得する方法はありますか?どうもありがとう

a = [1.5, 1.8, 3.1, 4.2, 5.5, 3.2, 4, 2, 1, 5.5, 3, 2.7]
b = max(a)
maxIndex = [i for i, j in enumerate(b) if j == b][0]

トレースバック(最後の最後の呼び出し):TypeErrorのファイル ""、1行目:'float'オブジェクトは反復可能ではありません

4

4 に答える 4

5

まず、最大フロートのように、ではenumerate(a)なく使用するつもりだったと思います。enumerate(b)b

次に、次のこともできます。

maxIndex = a.index(b)
于 2012-08-30T05:30:22.667 に答える
2

max(a)単一の最高値を返します-リスト(または反復可能なもの)をまったく返しません。したがって、enumerateを使用することはできません。

于 2012-08-30T05:29:41.357 に答える
2

一発ギャグ:

maxpos = max(enumerate(a), key=lambda p: p[1])[0]
于 2012-08-30T05:32:17.390 に答える
0

タイプミスがあります

maxIndex = [i for i, j in enumerate(a) if j == b][0]
于 2012-08-30T05:29:55.463 に答える