我有一个数组和一个函数,我希望该函数返回一个索引列表,其中两个连续元素的差超过阈值。
我有:
def func (y, t=100):
for i in range(1, len(y)): #Range skips 1st element
if abs(y[i] - y[i-1]) > t:
return(i)
我面临的问题是这个函数只返回我的 if 语句为真的第一个索引。我如何获得其余的?
最佳答案
有两种方法。首先,yield
而不是 return
会给你一个生成器:
def func (y, t=100):
for i in range(1, len(y)): #Range skips 1st element
if abs(y[i] - y[i-1]) > t:
yield(i)
或者在你的函数中添加一个列表:
def func (y, t=100):
output = []
for i in range(1, len(y)): #Range skips 1st element
if abs(y[i] - y[i-1]) > t:
output.append(i)
return output
关于python - 从函数返回数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50691805/