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