簡體   English   中英

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

[英]Find indices of x minimum values of a list

我有一個長度為n的清單。

我想找到保存此列表的5個最小值的索引。

我知道如何使用operator查找包含最小值的索引

min_index,min_value = min(enumerate(list), key=operator.itemgetter(1))

可以更改此代碼以獲得我所追求的5個索引的列表嗎?

盡管這需要對整個列表進行排序,但是您可以從sorted列表中得到一部分:

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

那這樣的東西呢?

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

這將返回一個列表列表,其中list [x] [0] =索引,list [x] [1] =值

編輯:

假設列表沒有重復的最小值。 正如adhg McDonald-Jensen指出的那樣,這只會返回Give值的第一個實例。

如果使用的軟件包heapq ,它可以這樣做nsamllest

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM