2016-10-21 5 views
-1

Schwierigkeiten beim Versuch, eine Funktion def zu erstellen, die angibt, wie drei akzeptierte Integer zurückgegeben werden, und in ein Tupel in einem sortierten Format vom kleinsten zum größten, je nachdem ob aufsteigend wahr ist. Wie würde ich das programmieren? Würde ich eine for-Schleife mit if-Anweisungen verwenden, ob sie aufsteigend ist? Ich habe eine allgemeine Idee für die Sortierung mit "sortierte (Liste)" und "sortiert (Liste, reverse = True)."Werte in ein Tupel zurückgeben?

Funktionscode Ich habe bisher:

def sort3(x,y,z, ascending=True): 
    list(x,y,z) 
    return lst 

-Test wie dieser sort3 sein sollte (5,3,4) gibt (3,4,5)

+1

'return tuple (sortiert ([x, y, z], rückwärts = (nicht aufsteigend)))' Du schreibst gerade die 'sortierte' Funktion um ... – brianpck

+1

Eigentlich gibt er' lst' zurück, was ist nicht definiert. –

+0

@JohnGordon guten Fang. –

Antwort

3

Diese den Trick tun sollten:

def sort3(x, y, z, ascending=True): 
    return tuple(sorted([x, y, z], reverse=not ascending)) 
+0

Vielen Dank, sehr vereinfacht. Ich glaube, ich dachte darüber nach. –

0

Theoretisch könnten Sie tun dies mit einer Reihe von if Aussagen jedoch Python hat Funktionen integrierte, dass diese Aufgabe für Sie durchführen kann viel mehr einfach.
Versuchen die sorted() Funktion (die eine Objektliste Typs zurückgibt) in Kombination mit der tuple() Funktion, die Liste in einTupel zu konvertieren.

0
def sort3(x, y, z): 
    d = [x, y ,z] 
    return tuple(sorted(d)) 

Ist es nicht genug?

Verwandte Themen