我正在重构一个函数,该函数给定一系列隐含定义间隔的端点,检查数字是否包含在间隔内,然后返回相应的值(与任何可计算方式无关)。 当前处理此任务的代码为:
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
在我看来,这相当糟糕,因为区间和返回值都是硬编码的。当然可以使用任何数据结构。
p = 10 x = bisect.bisect_left(OrderedDict({10: 'a', 11: 'b'}), p) print()
但它没有起作用。 - Charlie Parker