有一个列表:
a= [5,6,8,4]
我试图通过键入类似a.index(max(a))
的内容来查找索引,但是没有用。
不是打印“ 3”,而是打印了“ 0”。
为什么这样做,我该如何解决?
答案 0 :(得分:2)
您的示例可以正常工作:
>>> a = [5, 6, 8, 4]
>>> a.index(max(a))
2
如果您想避免多次浏览列表,则可能需要使用类似的内容:
>>> a = [5, 6, 8, 4]
>>> max(enumerate(a), key=lambda a: a[1])[0]
2
如果这些整数实际上是字符串,它也可以工作:
>>> a = ['5', '6', '8', '4']
>>> a.index(max(a))
2
>>> max(enumerate(a), key=lambda a: a[1])[0]
2
此外,正如RoadRunner在评论中指出的那样,您也可以使用operator.itemgetter
:
>>> import operator
>>> a = [5, 6, 8, 4]
>>> max(enumerate(a), key=operator.itemgetter(1))[0]
2
>>> a = ['5', '6', '8', '4']
>>> max(enumerate(a), key=operator.itemgetter(1))[0]
2