python - 从函数返回数组索引

标签 python python-3.x function indexing

我有一个数组和一个函数,我希望该函数返回一个索引列表,其中两个连续元素的差超过阈值。

我有:

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/

相关文章:

Python 战斗序列

ios - 在所有 viewDidLoad 函数中重复相同的语句可能的扩展文件

Javascript/Jquery 通过事件切换对象

python - 调整不适合内存的大图像

python - 机器学习中测试集需要数据清理吗?

Python URL 请求

python - 尝试使用 "pyinstaller <scriptname.py>"并得到 "TypeError: an integer is required (got type bytes)"

Python Scrapy - 如何在抓取过程中重置连接?

python - 使用日期格式设置 X 轴格式

php - 在 MySQL 中创建自己的函数时出现语法错误