Зажимать плавающие числа в 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 - даже в пределах границ).

Другие вопросы по тегам