在Python中,如何获取列表中5个最大值的索引?

d3p*_*3pd 0 python list max slice indices

我有一个简单的清单:

a = [8, 5, 2, 20, 13, 14, 17, 13, 15, 21]
Run Code Online (Sandbox Code Playgroud)

我可以在列表中获得5个最大值:

sorted(a)[-5:]
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到列表中5个最大值的索引

因此,列表的5个最大值是[14, 15, 17, 20, 21],这些是索引[9, 3, 6, 8, 5].我敢肯定,如果存在重复值,可以考虑多种策略,如果它们接近其他大值,则可以给出它们的索引.

fre*_*ish 6

你可以试试这个:

[x[0] for x in sorted(enumerate(a), key=lambda x: x[1])[-5:]]
Run Code Online (Sandbox Code Playgroud)