Python - проверка попадания в интервал

Помогите пож-та написать функцию для проверки попадания в интервалы, например: Дан список a = [10, 40, 100, 200, 1000]. Для каждого значения аргумента функция должна выдавать порядковый номер интервала, в который оно попадает (снизу - больше, сверху - меньше или равно), например:

20 - 1 (между 10 и 40),
130 - 3 (между 100 и 200),
1500 - 5 (больше 1000),
100 - 2 (больше 40 но не больше 100),
9 - 0 (меньше 10).

Т.е. нужен аналог экселевского ВПР с интервальным просмотром.


Ответы (1 шт):

Автор решения: CrazyElf

Ну элементарно же. Просто идёте по списку и как только ваш элемент меньше или равен очередному элементу списка - индекс найден:

def find_index(x):
    a = [10, 40, 100, 200, 1000]
    for i, n in enumerate(a):
        if x <= n:
            return i
    return len(a)

assert find_index(20) == 1
assert find_index(130) == 3
assert find_index(1500) == 5
assert find_index(100) == 2
assert find_index(9) == 0
→ Ссылка