2017-09-18 3 views
0

Ich versuche, eine Funktion zu erstellen, die eine Zeichenfolge von Zahlen aufnimmt und die maximalen und minimalen Werte ausgibt. Hier ist mein Codepython Fehlermeldung min() ARF ist eine leere Sequenz

def high_and_low(numbers): 
    numbers = map(int, numbers.split()) 
    max_n = max(numbers) 
    print(max_n)  
    min_n = min(numbers) 
    return(max_n, min_n) 

Aber ich erhalte den folgenden Fehler: Valueerror: min() arg eine leere Sequenz. Also nehme ich an, dass es nicht die negativen Werte liest, aber ich weiß nicht warum.

Antwort

1

Ich nehme an, Sie verwenden Python 3.x, wo map() wurde geändert, um einen Generator anstelle einer expliziten Liste der Ergebnisse als zurückgeben in Python 2.x. Aufruf von max() auf diesem Generator erschöpft es, keine Elemente für min() zu Iterieren über.

Eine Lösung wäre, diesen Generator in eine Liste zu konvertieren, vielleicht numbers = list(numbers) als die zweite Zeile Ihrer Funktion. Als Liste können Sie sie so oft wiederholen, wie Sie möchten.

+0

Danke, ich habe immer noch ein Problem, weil meine Ausgabe eine Zeichenfolge anstelle eines numerischen Arrays sein sollte. Ich habe versucht, map (str) auf die max und min, aber es hat nicht funktioniert – StudentOIST