大多数Pythonic方法将变量拟合到范围内?

时间:2014-03-21 17:31:08

标签: python

是否有更多的Pythonic方法来实现这一目标:

result = #...real value from elsewhere
max_value = 1
min_value = 0
if result > max_value:
    result = max_value
elif result < min_value:
    result = min_value
return result

不确定如何用文字解释,所以我希望它清楚。感谢

4 个答案:

答案 0 :(得分:6)

您可以使用minmax功能:

result = min(max_value, max(min_value, result))

答案 1 :(得分:1)

这是我喜欢的一个选项:

result = max_value if result > max_value else result
result = min_value if result < min_value else result

答案 2 :(得分:1)

您需要的只是sorted方法

result = sorted((min_value,result, max_value))[1]

答案 3 :(得分:0)

你真的需要这个部分吗?

elif result < min_value:
    result = min_value

不会这样做

result = #...real value from elsewhere
max_value = 1
min_value = 0
if result >= max_value:
    result = max_value
else:
    result = min_value
return result