homer512 icon

bisect

homer512 | PRO | 02/03/16 04:54:31 PM UTC | 0 ⭐ | 652 👁️ | Never ⏰ | []
Python |

960 B

|

None

|

0 👍

/

0 👎

#!/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