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

如何按自然月份顺序排序月份统计列表并补全缺失的月份

报错原因
  • 调用list.index()的逻辑错误:month_list的元素是(月份名, 统计值)格式的元组,你传入整个月份顺序列表去查询,当然不存在于month_list中,直接抛出ValueError
  • 你定义的month_index存在格式错误:' March'前面多了一个空格,和实际数据中的'March'不匹配,就算后续逻辑正确也会出现匹配失败的问题
完整实现方案

你需要先把统计结果转成字典快速匹配,再按自然月份顺序遍历拼接,不存在的月份自动填充'NA'即可,代码如下:

# 1. 定义正确的自然月份顺序(不要加多余空格)
month_order = ['January', 'February', 'March', 'April', 'May', 'June', 
               'July', 'August', 'September', 'October', 'November', 'December']

# 2. 把你得到的month_list转成字典,方便快速查询月份对应的数值
month_stat = dict(month_list)

# 3. 按顺序生成结果,缺失月份自动填充NA
sorted_result = [(month, month_stat.get(month, 'NA')) for month in month_order]
效果验证

场景1:完整月份的month_list

处理后输出顺序完全匹配自然月份,和预期格式一致:

[('January', 1155), ('February', 2268), ('March', 2630), ('April', 1237), ('May', 1567), ('June', 2046), ('July', 1289), ('August', 1880), ('September', 3329), ('October', 3744), ('November', 3072), ('December', 1959)]

场景2:缺失1月的month_list2

自动将1月的数值填充为'NA',符合要求:

[('January', 'NA'), ('February', 2268), ('March', 2630), ...]

如果仅需要排序、不需要填充缺失月份,可以用简化写法:

sorted_month_list = sorted(month_list, key=lambda x: month_order.index(x[0]))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:51:02