Ago*_*gos 14 python range intervals
我正在重构一个函数,给定一系列隐式定义区间的端点,检查区间中是否包含一个数字,然后返回一个对应的(以任何可计算的方式不相关).现在处理工作的代码是:
if p <= 100:
return 0
elif p > 100 and p <= 300:
return 1
elif p > 300 and p <= 500:
return 2
elif p > 500 and p <= 800:
return 3
elif p > 800 and p <= 1000:
return 4
elif p > 1000:
return 5
Run Code Online (Sandbox Code Playgroud)
这是IMO非常可怕,缺乏间隔和返回值都是硬编码的.当然可以使用任何数据结构.
Gle*_*ard 41
import bisect
bisect.bisect_left([100,300,500,800,1000], p)
Run Code Online (Sandbox Code Playgroud)
这里的文档:bisect
| 归档时间: |
|
| 查看次数: |
6887 次 |
| 最近记录: |