函数return第一个索引满足条件

Function return first index meets condition

我的函数在第一次满足条件时不会停止(列表中的最低值在 start_index 开始时开始)。我必须添加什么才能实现它。 我的代码是:

def index_min(l, start_index):
    min_ele = l[start_index]
    idx = []
    for i in range(start_index, len(l)):
        if l[i] <= min_ele:
            min_ele = l[i]
            idx = i
    return idx

print(index_of_min([10, 7, 19, 16, 5, 10, 5, 1, 5, 4, 6, 2, 3, 7, 12, 8, 9, 18, 1, 10, 7, 18],6))

它 returns 索引 18 而不是索引 7 起始索引为 6.

我假设您打算在 print() 语句中调用 index_min()

如果您希望获得最小数字的首次出现,您可以将 <= 更改为 <:

def index_min(l, start_index):
    min_ele = l[start_index]
    idx = []
    for i in range(start_index, len(l)):
        # If we see a value equal to the minimum seen so far, don't update the index.
        if l[i] < min_ele:
            min_ele = l[i]
            idx = i
    return idx

print(index_min([10, 7, 19, 16, 5, 10, 5, 1, 5, 4, 6, 2, 3, 7, 12, 8, 9, 18, 1, 10, 7, 18],6))