2013-12-18 11 views

Antwort

10

min und max Ansatz

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

Oder der ternären Ansatz

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

Der ternäre Ansatz sollte "start thefourtheye

+0

@ thefourtheye: guter Punkt sein. Aktualisiert! – inspectorG4dget

+1

Wenn es kein eingebautes gibt, ist es egal, wie man es für etwas so Triviales schreibt. – lowZoom

2

Der nächstgelegene ich mit oben kommen kann ist:

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

aber einige der gegebenen p enschen, die ich mit besser funktionieren könnte sein:

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

Aber wenn Sie mehrere Werte in einem Array haben, gibt es immer numpy.clip

Verwandte Themen