2017-04-01 47 views
0

我希望有一个列表中的多个最小的元素的索引,的Python:在列表

a = [2,4,5,2] 

b= [0, 3] 

我知道如何做到这一点的时候,只有一个单一的分元素,但不是多分钟元素。 例如:

b = a.index(min(a)) 

这会给我B = 0 感谢。

回答

2

查找最小值,然后重复使用enumerate找到最小值索引列表:

>>> a = [2,4,5,2] 
>>> min_value = min(a) 
>>> [i for i, x in enumerate(a) if x == min_value] 
[0, 3] 
+1

可能的复制[如何查找列表中所有元素的出现?](http://stackoverflow.com/questions/6294179/how-to-find-all-occurrences-of-an-element-in-a-list) – McGrady

+1

@McGrady,刚刚投了票。 – falsetru

1

你可以做,以下列方式使用numpy的:的

import numpy as np 
a = np.array([2,4,5,2]) 
np.where(a==a.min())