查找列表的x最小值的索引

时间:2016-05-11 12:06:38

标签: python list min

我有一个长度为n的列表。

我想找到包含此列表的5个最小值的索引。

我知道如何使用operator

找到包含最小值的索引
min_index,min_value = min(enumerate(list), key=operator.itemgetter(1))

可以修改此代码以获取我追踪的5个索引的列表吗?

3 个答案:

答案 0 :(得分:1)

虽然这需要对整个列表进行排序,但您可以获得sorted列表的一部分:

data = sorted(enumerate(list), key=operator.itemgetter(1))[:5]

答案 1 :(得分:1)

这样的事情怎么样?

    map(lambda x: [a.index(x),x],sorted(list)[:5])

将返回列表列表,其中list [x] [0] =索引和列表[x] [1] =值

编辑:

这假定列表没有重复的最小值。正如adhg McDonald-Jensen指出的那样,这只会返回给定值的第一个实例。

答案 2 :(得分:1)

如果使用包heapq,可以通过nsamllest

完成
heapq.nsmallest(5, enumerate(list), key=operator.itemgetter(1))