You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python计算列表中指定近期数据的最大连续增长次数?

解决方案

需求分析

给定余额列表(最右侧为最新数据),指定时段长度后,统计该时段内余额的最大连续增长次数:

  • 若后一条余额大于前一条,连续增长计数+1
  • 若不增长,计数重置为0
  • 最终取所有计数中的最大值

Python 实现代码

def max_consecutive_growth(balance, period):
    # 截取最近period条数据
    recent_balances = balance[-period:]
    if len(recent_balances) < 2:
        return 0  # 少于2条数据无法判断增长
    
    current_count = 0
    max_count = 0
    
    # 从第2条数据开始遍历,和前一条比较
    for i in range(1, len(recent_balances)):
        if recent_balances[i] > recent_balances[i-1]:
            current_count += 1
            # 更新最大值
            if current_count > max_count:
                max_count = current_count
        else:
            current_count = 0
    
    return max_count

# 测试示例
balance = [300,400,250,100,50,1,2,0,10,15,25,20,10,1,0,10,15]
# 取最近10条数据,预期结果3
print(max_consecutive_growth(balance, 10))  # 输出:3

代码说明

  1. 数据截取:通过balance[-period:]获取最新的period条余额数据,符合“最右侧为最新”的规则
  2. 边界处理:若截取后的数据不足2条,直接返回0(无法形成连续比较)
  3. 计数逻辑:遍历过程中实时维护当前连续增长计数和历史最大值,遇到不增长的情况立即重置当前计数
  4. 效率:仅需一次遍历,时间复杂度为O(n),n为指定时段长度,性能高效

内容的提问来源于stack exchange,提问作者Giampaolo Levorato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 01:30:21