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

如何用Python计算文本文件中每年数据的平均值?

解决每年数据平均值计算的问题

我看了你的代码和数据,问题出在数据格式的处理上:你的文本文件里是一行包含多组年份和数值(比如1969 324.000 1970 330.190...),但原代码默认每行只有一组年份 数值,直接用year, num = line.split()会因为元素数量不匹配报错——split之后得到的是一个长列表,没法直接解包成两个变量。

下面是修正后的完整代码,能正确处理你的数据并计算每年的平均值:

result = {}
with open('filename.txt', 'r') as f:
    for line in f:
        # 把整行内容分割成所有元素的列表
        elements = line.split()
        # 两两分组:年份和对应的数值
        for i in range(0, len(elements), 2):
            year = int(elements[i])
            num = float(elements[i+1])
            # 统计每个年份的数值列表
            if year in result:
                result[year].append(num)
            else:
                result[year] = [num]

# 计算并打印每个年份的平均值
print("每年数据平均值:")
for year in sorted(result.keys()):
    nums = result[year]
    average = sum(nums) / len(nums)
    print(f"{year}: {average:.3f}")

代码说明:

  • 用line.split()获取整行的所有元素,然后通过range(0, len(elements), 2)步长为2遍历,每次取第i个元素作为年份,第i+1个作为数值,这样就能正确处理一行多组数据的情况。
  • 统计完成后,对每个年份的数值列表求和再除以数量,得到平均值,用:.3f保留三位小数,和你原始数据的格式一致。

用你的测试数据运行后,输出结果应该是:

每年数据平均值:
1969: 324.000
1970: 328.013
1971: 332.194

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:37:41