您正在使用.index()
它将仅在列表中找到您的值的 匹配项。因此,如果在索引2和索引9处的值为1.0,则无论列表中发生了多少次,.index(1.0)
都将 始终 返回。2``1.0
使用enumerate()
到索引添加到您的循环,而不是:
def find(lst, a, b):
result = []
for i, x in enumerate(lst):
if x<a or x>b:
result.append(i)
return result
您可以将其折叠为列表理解:
def find(lst, a, b):
return [i for i, x in enumerate(lst) if x<a or x>b]