[英]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.