Python:从区间到值的映射

2024-04-30

我正在重构一个函数,给定一系列隐式定义间隔的端点,检查间隔中是否包含数字,然后返回相应的值(不以任何可计算的方式相关)。 现在处理这项工作的代码是:

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

在我看来,这是非常可怕的,并且缺乏间隔和返回值都是硬编码的。 任何数据结构的任何使用当然都是可能的。


import bisect
bisect.bisect_left([100,300,500,800,1000], p)

这里是文档:bisect https://docs.python.org/3.7/library/bisect.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:从区间到值的映射 的相关文章

随机推荐