如何确定列表中的几个最小值?

问题描述 投票:0回答:2

我有一个最低限度的清单:

some_list = [1,4,6,4,1,7]

是否有内置函数或任何智能解决方案来获取最小值的索引?

result = [0,4]

到目前为止,我是这样做的,但是我希望阅读起来更短/更容易。

 min = 10**10
 result = [] 
 for i in range(len(some_list)):
        if some_list[i] < min:
            min = some_list[i]
            result = [i]
        elif some_list[i] == min:
            result.append(i)
python python-3.x list min
2个回答
5
投票

您可以尝试这个。

some_list = [1,4,6,4,1,7]
_min=min(some_list)
index=[idx for idx,val in enumerate(some_list) if val==_min]
# [0,4]

0
投票
In [13]: import numpy as np                                                     

In [14]: values = np.array([1,4,6,4,1,7])                                       

In [15]: np.where(values==values.min())                                         
Out[15]: (array([0, 4]),)
© www.soinside.com 2019 - 2024. All rights reserved.