将我的订单值放入多个存储桶中

Dat*_*oda 3 python if-statement

我编写了一个函数,将订单值放入多个存储桶中,如下所示。我现在有 18 个存储桶,但如何将此函数扩展到 40 个存储桶?

def cat(x):
    if x < 50:
        return '< $50'
    elif x <75:
        return '\\$50~$75'
    elif x <100:
        return '\\$75~$100'
    elif x<125:
        return '\\$100~$125'
    elif x<150:
        return '\\$125~$150'
    elif x<175:
        return '\\$150~$175'
    elif x<200:
        return '\\$175~$200'
    elif x<250:
        return '\\$200~$250'
    elif x<300:
        return '\\$250~$300'
    elif x<350:
        return '\\$300~$350'
    elif x<400:
        return '\\$350~$400'
    elif x<500:
        return '\\$400~$500'
    elif x<600:
        return '\\$500~$600'
    elif x<700:
        return '\\$600~$700'
    elif x<800:
        return '\\$700~$800'
    elif x<900:
        return '\\$800~$900'
    elif x<1000:
        return '\\$900~$1000'
    else:
        return '\\$1000 over'
Run Code Online (Sandbox Code Playgroud)

Den*_*nis 5

我会使用二等分模块:

import bisect

cutoffs = [50, 75, 100, 125, 150, 175, 200, 250, 300, 350, 400, 500, 600, 700, 800, 900, 1000]

def cat(x):
    i = bisect.bisect(cutoffs, x)
    if i == 0:
        return f'< ${cutoffs[0]}'
    elif i == len(cutoffs):
        return f'\\${cutoffs[-1]} over'
    else:
        lo, hi = cutoffs[i-1], cutoffs[i]
        return f'\\${lo}-${hi}'
Run Code Online (Sandbox Code Playgroud)