Ersetzen Sie die eingebaut in min Funktionen in Python
Frage
sollte ich eine Funktion min_in_list(munbers)
, schreiben, die eine Liste Takes
Zahlen und gibt die kleinste. HINWEIS: eingebaute Funktion ist min
NICHT erlaubt
def min_in_list(numbers):
the_smallest = [n for n in numbers if n < n+1]
return the_smallest
Was ist los?
Lösung
def min_of_two(x, y):
if x >= y: return x
else: return y
def min_in_list(numbers):
return reduce(min_of_two, numbers)
Sie haben 1 Nummer aus der Liste zu erzeugen, nicht nur eine andere Liste. Und das ist Arbeit für reduce
Funktion (natürlich können Sie es implementieren, ohne reduce
, sondern analog zu ihm).
Andere Tipps
Hier gehen Sie. Dies ist fast sicher über so einfach, wie man es machen könnte. Sie haben nicht einmal Kredit geben Sie mir, wenn Sie die Zuordnung in drehen.
import itertools
import functools
import operator
def min(seq, keyfun=operator.gt):
lt = lambda n: functools.partial(keyfun, n)
for i in seq:
lti = lt(i)
try:
next(itertools.ifilter(lti, seq))
except:
return i
min = lambda n: return reduce(lambda x,y: (x>y) and return x or return y,n)
Sie nie getestet worden, die Verwendung erfolgt auf eigene Gefahr.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow