#!/usr/bin/python2 import bisect def main(): lower_bounds = (17100, 18000, 18900, 19800, 20700, 21600, 22500, 23400, 24300, 25200, 26100, 27000, 27900, 28800, 29700, 30600, 31500, 32400, 33300, 34200) assert tuple(sorted(lower_bounds)) == lower_bounds values = range(1, 21) assert len(values) == len(lower_bounds) average_available = 26101 index = bisect.bisect(lower_bounds, average_available) if index: less_equal = lower_bounds[index - 1] kpi_average_available = values[index - 1] else: # below range less_equal = None kpi_average_available = 0 try: greater = lower_bounds[index] except IndexError: greater = None print "%d > %d >= %d: kpi_average_available = %d" % \ (greater, average_available, less_equal, kpi_average_available, ) if __name__ == '__main__': main()
Comments