我有一个简单的清单:
a = [8, 5, 2, 20, 13, 14, 17, 13, 15, 21]我可以得到列表中的5个最大的值:
sorted(a)[-5:]我怎样才能得到列表中五大值的指数?
因此,列表中的5个最大值是[14, 15, 17, 20, 21],这些值位于[9, 3, 6, 8, 5]索引处。我确信,如果有重复的值,可以考虑多种策略,如果它们接近其他大值,就可以给出它们的指数。
发布于 2016-04-13 14:01:39
你可以试试这个:
[x[0] for x in sorted(enumerate(a), key=lambda x: x[1])[-5:]]发布于 2016-04-13 13:59:46
发布于 2016-04-13 14:02:28
这在一定程度上取决于列表中是否有重复的值。
如果没有重复的值,我认为最简单的答案可能是以您提到的方式获得最大的值,然后对每个值使用列表的index方法:[1,2,3].index(3)查找该值的索引。
https://stackoverflow.com/questions/36600704
复制相似问题