0

我有一个列表a,然后我max(a)用来获取最大值。下一步我试图用来enumerate()获取最大值的第一个位置。但它注意到我只能enumerate()用于 int 列表?浮动列表怎么样?有什么方法可以在浮点(也有 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]

Traceback(最近一次调用最后一次):文件“”,第 1 行,类型错误:'float' 对象不可迭代

4

4 回答 4

5

首先,我认为您的意思是使用enumerate(a)not enumerate(b),就像b最大浮动一样。

其次,您还可以这样做:

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

单线:

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

max(a)返回单个最高值 - 它根本不返回列表(或任何可迭代的)。因此,您不能对其使用 enumerate 。

于 2012-08-30T05:29:41.357 回答
0

你有一个错字

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