Зажимать плавающие числа в Python?
Есть ли встроенная функция для этого в Python 2.6?
Что-то вроде:
clamp(myValue, min, max)
2 ответа
Решение
Там нет такой функции, но
max(min(my_value, max_value), min_value)
сделает свое дело.
Numpy-х clip
Функция сделает это.
>>> import numpy
>>> numpy.clip(10,0,3)
3
>>> numpy.clip(-4,0,3)
0
>>> numpy.clip(2,0,3)
2
Я думаю, что на вопрос дан ответ, но вот альтернативное решение DIY, если оно кому-то нужно:
def clip(value, lower, upper):
return lower if value < lower else upper if value > upper else value
(Немного быстрее, чем ответ @Sven Marnach - даже в пределах границ).