找到最小的数字及其索引

时间:2018-06-10 21:20:34

标签: python list indexing min

l = [0,1,2,0,3]

我想找到l的最小数字及其索引,应该给出

(0,0),(0,3)

我所做的是

def find_smallest(xy):
    return (np.min(xy), xy.index(min(xy)))

find_smallest([0,1,2,0,3])

给出(0,0)

3 个答案:

答案 0 :(得分:2)

def find_smallest(xy):
    minimum=np.min(xy)
    index=0
    indexes=[]
    minimums=[]
    for item in xy:
        if item==minimum:
            minimums.append(minimum)
            indexes.append(index)
        index+=1
    return tuple(minimums),tuple(indexes)

find_smallest([0,1,2,0,3])

这个应该有效

答案 1 :(得分:1)

一个例子:

l = [0,1,2,0,3]

def find_smallest(xy):
    smallest = min(xy)
    return [(j, i) for i, j in enumerate(xy) if j==smallest]

find_smallest(l)

答案 2 :(得分:0)

您只返回第一个匹配项,您应该在迭代第一个列表时建立一个列表。

def find_smallest(xy):
    m = None
    matches = []
    for i, n in enumerate(xy):
        if n == m:
            matches.append((n, i))
        if m is None or n < m:
            m = n
            matches = [(n, i)]
    return matches

print(find_smallest([0,1,2,0,3]))  # [(0, 0), (0, 3)]
print(find_smallest([6,0,1,2,0,3]))  # [(0, 1), (0, 4)]
相关问题