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

如何修改Python代码实现列表每5个连续元素的均值迭代计算?

问题分析

原代码的核心问题有两个:

  • 外层循环遍历列表每个元素完全多余,且每次循环都会重置total和avg,导致重复计算前5个元素
  • 内层循环始终取inputList[j](j固定0-4),没有随窗口位置偏移,永远只计算前5个元素的均值
修复方案

用滑动窗口思路,遍历每个窗口的起始索引,每次取连续5个元素计算均值:

inputList = [2, 1, 3, 5, 2, 7, 3, 7, 4, 6, 9, 1, 0, 2, 4, 8, 9, 2, 0, 1, 3]

# 遍历每个窗口的起始索引,确保最后一个窗口能凑齐5个元素
for i in range(len(inputList) - 5 + 1):
    # 截取当前窗口的5个连续元素
    window = inputList[i:i+5]
    # 计算总和与均值
    total = sum(window)
    avg = total / 5
    print(f"起始索引{i}的窗口均值: {avg}")
代码说明
  • range(len(inputList) - 5 + 1):保证最后一个窗口的结束索引不超出列表范围,比如21个元素的列表,最后一个起始索引是16(16+5=21)
  • inputList[i:i+5]:Python切片语法,直接获取从索引i开始的5个连续元素
  • sum(window):用内置函数计算总和,比手动循环累加更简洁高效

如果想保留手动累加的方式(适合学习理解),可以改成这样:

inputList = [2, 1, 3, 5, 2, 7, 3, 7, 4, 6, 9, 1, 0, 2, 4, 8, 9, 2, 0, 1, 3]

for i in range(len(inputList) - 5 + 1):
    total = 0
    # 内层循环遍历当前窗口的5个元素,索引从i到i+4
    for j in range(i, i+5):
        total += inputList[j]
    avg = total / 5
    print(f"起始索引{i}的窗口均值: {avg}")

内容的提问来源于stack exchange,提问作者Kay Ram

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:35:15