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

如何将Python函数计算结果按10为区间智能分箱?

按10为区间对求和结果分箱的智能实现方法

我需要实现一个函数,先对输入的可迭代对象执行求和计算,再将计算结果按每10为一个区间分箱(比如<10、10-19、20-29这类区间)。目前我用的方法比较笨拙:创建字典枚举所有可能的结果对应的分箱,代码如下:

def total(iterable):
    dict = {36: '30 - 40' , 6 : '< 10'}
    total = dict[sum(iterable)]
    return total


candidates = [[11,12,13],[1,2,3]]

for iterable in candidates:
    output = str(total(iterable))
    print (output)

更智能的实现方式

不用费劲维护枚举字典,通过简单的数学计算就能动态生成对应的分箱标签,不管求和结果是多大的数都能适配,还能避免没覆盖到数值导致的报错:

代码示例

def total(iterable):
    sum_val = sum(iterable)
    if sum_val < 10:
        return '< 10'
    # 整数除法取整后乘10,得到区间起始值
    start = (sum_val // 10) * 10
    # 按照示例格式生成区间标签
    return f'{start} - {start + 10}'


candidates = [[11,12,13],[1,2,3], [25, 3], [100, 5]]
for iterable in candidates:
    print(total(iterable))

方法优势

  • 通用性强:不管求和结果是几位数,都能自动生成对应的区间标签,不用提前枚举所有可能
  • 易维护:如果以后要调整区间大小(比如改成每20分箱),只需要修改除法的除数和区间结束值即可
  • 避免错误:不会出现因为字典里没包含某个求和结果而抛出KeyError的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:10:20