2013-12-18 7 views
8

これはPythonライブラリに存在しますか?Pythonで特定の範囲の数値を保持する組み込み関数はありますか?

def func(num, start, end): 
    if num <= start: 
     return start 
    if num >= end: 
     return end 
    return num 
+3

あなたはすでにそれを持って、そしてそれが作るのは簡単だが常に存在します。ではなぜ組み込みが必要なのでしょうか? – aIKid

+4

@aIKidホイールを再発明するのは非常に難しいので、 – lowZoom

答えて

10

minmaxアプローチ

def func(num, start, end): 
    return min(max(num, start), end) 

または三元アプローチ

def func(num, start, end): 
    return num if start<num<end else start if num<=start else end 
+0

3進法は 'start thefourtheye

+0

@thefourtheye:良い点でなければなりません。更新しました! – inspectorG4dget

+1

ビルトインがない場合は、それほど簡単ではないものを書く方法は関係ありません。 – lowZoom

2

私が思い付くことができます最も近いです:

def func(num, start, end): 
    return min(max(start,num),end) 

しかし、のいくつかを与えられましたp私はより良いで動作eopleは次のようになります。

def func(num, start, end): 
    """ Clip a single value """ 
    top, bottom = max(start, end), min(start, end) 
    return min(max(bottom,num),top) 

しかし、あなたは、配列内のいくつかの値を持っている場合numpy.clip

関連する問題