提取列表中n个最大值的索引

瑞安·哈特

在保留要从中提取索引的列表的同时,将与另一个列表的n个最大值对应的索引提取到列表的最有效方法是什么?

例如,假设我们有以下索引列表:

foo = [107,6,34,12,82]

如果我们请求列表foo的2个最高值的索引,它将返回以下列表:

bar = [0,4]

这是我现在正在运行的内容,它确实效率很低而且一点也不优雅,我也不知道如何改善它:

foo = [107, 6, 34, 12, 82]
tmp = list(foo)
bar = []
no_of_indices_wanted = int(input())
for n in range(no_of_indices_wanted):
    bar.append(foo.index(max(foo)))
    foo.pop(foo.index(max(foo)))
foo = tmp
吹牛

您可以使用enumerate注释每个项目的索引,然后使用heapq.nlargest来获取列表中的前两个,然后将索引提取到列表中:

import heapq
from operator import itemgetter
print(list(map(itemgetter(0), heapq.nlargest(2, enumerate(foo), key=itemgetter(1)))))

输出: [0, 4]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

范围中第N个最大值的索引

N个最大值在python列表中的位置?

列表最大值的索引

返回未排序列表的第n个最大值的索引

两个列表及其索引之间的最大值

根据第二个索引的最大值删除列表中的元组

获取列表中具有相同最大值的最后一个索引

在嵌套列表中搜索最大值和索引

求和列表中每個元素索引的最大值

如何从两个列表中删除与单独列表的重复值相对应的非最大值的索引?

用R中的data.table按组提取n个最大值

VBA-获取数组中第n个最大值的索引

如何获取NumPy数组中N个最大值的索引?

如何获取NumPy数组中N个最大值的索引?

使用随机抢七获得numpy数组中N个最大值的索引

在不排序的情况下获取numpy数组中N个最大值的索引?

在熊猫中的轴上找到N个最大值的索引

如何从列表中的每个元素都是元组的列表中获取元组第 0 个索引处的最大值?

Python:如何遍历列表以找到另一个列表中索引为正值的最大值

列表及其索引的最大值

列表中两个切片的最小最大值/最大值

从最大值开始获取列表的第n个元素

在n个不相等的列表中查找最大值

数字熊猫DataFrame中n个最大值的(行,列)列表?

根据python中另一个列表的最大值对数组的列索引进行分组

根据最大值索引C ++从2个向量中提取值

通过列表列表中的索引计算最小值或最大值

获取列表中最大值的索引并返回后续列表中的值

从Java中列表的列表最大值