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

如何遍历Python字典生成按3年分组的温度汇总字典?

解决汇总布拉格温度字典的分组求和问题

修改后的完整代码

test_dict = {1775: 3, 1776: 1, 1778: 3, 1779: 12, 1780: 1, 
             1781: 5, 1782: 2, 1784: 8, 1786: 3, 1787: 4}

sum_dict = {}
# 获取原字典年份的边界,确定分组范围
min_year = min(test_dict.keys())
max_year = max(test_dict.keys())

# 从最小年份开始,每3年作为一组的起始点遍历
current_start = min_year
while current_start <= max_year:
    # 定义当前组包含的3个连续年份
    group_years = [current_start, current_start + 1, current_start + 2]
    # 累加组内年份对应的数值,不存在的年份按0计算
    total = sum(test_dict.get(year, 0) for year in group_years)
    # 将起始年与对应总和存入汇总字典
    sum_dict[current_start] = total
    # 切换到下一组的起始年
    current_start += 3

print(sum_dict)

代码说明

  • 先通过min()和max()锁定原字典的年份范围,确保所有分组都覆盖有效年份。
  • 用while循环按步长3遍历所有分组起始年,保证每组是连续3年的集合。
  • 使用test_dict.get(year, 0)安全取值,避免因年份不在原字典中触发KeyError,不存在的年份贡献值为0。
  • 借助生成器表达式sum(...)快速计算组内总和,简化累加逻辑。
  • 每处理完一组就将结果存入sum_dict,最终生成完整的汇总字典。

运行结果

执行代码后会输出:

{1775: 4, 1778: 16, 1781: 7, 1784: 8, 1787: 4}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 16:05:43