python: определить входит ли число/диапазон в диапазон от min до max и скорректировать диапазон
стоит 2 задачи
есть число
valueи диапазонr = (min, max), требуется определить, попадает ли число в диапазонесть диапазон
r1 = (min1, max1)и диапазонr2 = (min2, max2), требуется найти пересечение диапазонов
понятно что и первую и вторую задачу можно сделать через обычные проверки в лоб, типа
res = r[0] <= value <= r[1]
и
res = max(r1[0], r2[0]), min(r1[1], r2[1])
res = None if res[0] > res[1] else res
но может есть стандартные функции или функции numpy для этого? чтобы в код поменьше лишнего своего кода добавлять
Ответы (1 шт):
Автор решения: Кирилл Малышев
→ Ссылка
Для удобной работы с интервалами есть сторонняя библиотека portion. Устанавливаем её:
pip install portion
На гитхабе есть много примеров. Получить пересечение можно так:
import portion as P
r1 = P.open(5, 10)
r2 = P.open(7, 15)
res = r1 & r2 # (7, 10)
Проверить вхождение числа можно операцией in:
res = value in r1