34

Python 2.6 中是否有内置函数?

就像是:

clamp(myValue, min, max)
4

3 回答 3

61

Numpy 的clip函数会做到这一点。

>>> import numpy
>>> numpy.clip(10,0,3)
3
>>> numpy.clip(-4,0,3)
0
>>> numpy.clip(2,0,3)
2
于 2012-11-05T12:41:41.297 回答
51

没有这样的功能,但是

max(min(my_value, max_value), min_value)

会成功的。

于 2012-03-19T18:26:51.620 回答
9

我认为这个问题已经得到解答,但如果有人需要,这里有一个替代的 DIY 解决方案:

def clip(value, lower, upper):
    return lower if value < lower else upper if value > upper else value

(比@Sven Marnach 的回答略快——即使在界内)。

于 2019-10-20T05:02:08.397 回答