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)
我会使用二等分模块:
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)