例如l = [1,2,5,6,72,234,52,4,11]
如何找到3个最小的索引?
这里最小的3个数字是1,2,4,因此所需的输出是[0,1,7]
我只能使用ptyhon 2.7
非常感谢
答案 0 :(得分:0)
一种简单的方法:
l = [1,2,5,6,72,234,52,4,11]
nsamllest = lambda l,n:map(lambda x:x[1],sorted([(x,i) for i,x in enumerate(l)],key=lambda x:x[0])[:n])
nsamllest(l,3)
输出:[0,1,7]
答案 1 :(得分:0)
您可以改用heapq.nsmallest
:
import heapq
from operator import itemgetter
[i for i, _ in heapq.nsmallest(3, enumerate(l), key=itemgetter(1))]
这将返回:
[0, 1, 7]
答案 2 :(得分:0)
如果要在数字列表中查找最小/最大索引(这似乎是您的情况),那么我建议您使用numpy:
mylist = [1,2,5,6,72,234,52,4,11]
import numpy as np
mindex = np.argmin(mylist)
OR
maxinx = np.argmax(mylist)