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?

War es hilfreich?

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
scroll top