[PYTHON] Ich möchte an eine Wiederholung denken können

Als ich das Haskell-Buch las, erinnerte ich mich, dass ich meine Augen für Scala geöffnet hatte und eine rekursive Funktion schreiben wollte, aber ich war nicht sicher, also habe ich mich mit qsort abgefunden. Ich möchte eine coolere Wiederholung schreiben, indem ich sie an die Registrierung in meinem Gehirn klebe. Wann immer ich eine Schleife schrieb, dachte ich, es wäre gut, sich vorzustellen, was passieren würde, wenn ich sie rekursiv schreibe.

qsort.py


import random
a = [i for i in range(100)]
random.shuffle(a)
print "before"
print a 

def qsort(l):
  if len(l) > 1:
    pivot = random.randrange(len(l))
    smaller = [i for i in l if i < l[pivot] ]
    bigger = [i for i in l if i >= l[pivot] ]
    l = qsort(smaller) + qsort(bigger)
  return l

a = qsort(a)
print "after"
print a
```##Ausgabeergebnis

before
[5, 40, 28, 72, 7, 68, 64, 91, 37, 67, 23, 90, 85, 43, 39, 93, 58, 62, 75, 41, 53, 14, 3, 52, 47, 94, 44, 15, 80, 99, 89, 56, 33, 84, 86, 70, 10, 61, 59, 76, 35, 1, 60, 96, 55, 19, 26, 24, 32, 97, 30, 57, 66, 25, 69, 98, 12, 42, 78, 27, 87, 51, 21, 82, 92, 71, 9, 95, 11, 6, 83, 2, 81, 73, 17, 63, 16, 46, 34, 22, 77, 4, 48, 79, 49, 88, 36, 65, 29, 50, 31, 8, 18, 54, 45, 38, 20, 0, 74, 13]
after
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

Recommended Posts

Ich möchte an eine Wiederholung denken können
Ich möchte Passungen aus meinem Kopf machen
Ich möchte SUDOKU lösen
Ich möchte meine Abschlussarbeit über IPython Notebook ankündigen
Ich möchte systemd grob verstehen
Ich möchte Bilder kratzen und trainieren
Ich möchte ○○ mit Pandas machen
Ich möchte Yolos Anmerkung kopieren
Ich möchte mit Python debuggen
Ich möchte die Position meines Gesichts mit OpenCV überprüfen!
Ich möchte Spyder an die Taskleiste anheften
Ich möchte wütend auf meine Mutter werden, wenn die Erinnerung knapp ist
Ich möchte Objekte mit OpenCV erkennen
Ich möchte kühl auf die Konsole ausgeben
Ich möchte in der Einschlussnotation drucken
Ich möchte sie alle zusammen kratzen.
Ich möchte mit dem Reim Teil1 umgehen
Ich möchte wissen, wie LINUX funktioniert!
Ich möchte einen Blog mit Jupyter Notebook schreiben
Ich möchte mit dem Reim part3 umgehen
Ich möchte ein Glas aus Python verwenden
Ich möchte eine Python-Umgebung erstellen
Ich möchte Linux auf dem Mac verwenden
Ich möchte eine Pip-Installation mit PythonAnywhere durchführen
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
Ich möchte die Django Debug Toolbar in Ajax-Anwendungen verwenden
Ich möchte meine Gefühle mit den Texten von Mr. Children ausdrücken
Ich möchte IPython Qt Console verwenden
Ich möchte den Fortschrittsbalken anzeigen
Ich möchte ein Automatisierungsprogramm erstellen!
Ich möchte Matplotlib in PySimpleGUI einbetten
Was ich immer zu meinem ~ / .bashrc hinzufüge
Ich möchte Python-Code auf VS-Code nach meinen Wünschen formatieren und überprüfen
Ich möchte mit dem Reim part2 umgehen
Ich möchte Android-Apps auf Android entwickeln
Ich möchte, dass CAPTCHA HIWAI-Wörter sagt
Ich möchte mit dem Reim part5 umgehen
Ich versuchte mein Bestes, um zu Lasso zurückzukehren
Ich möchte mit dem Reim part4 umgehen
[Ansible] Ich möchte meine eigene Funktion über das Vorlagenmodul (Makro) aufrufen.
Ich möchte eine schöne Python-Entwicklungsumgebung für meinen neuen Mac erstellen
[Linux] Sie haben keine Root-Rechte. Aber ich möchte yum installieren.
Ich möchte Matplotlib zu einem dunklen Thema machen
Ich möchte aus verschiedenen Sprachen eine Verbindung zu PostgreSQL herstellen
Ich möchte Dunnetts Test in Python machen
Ich möchte einfach ein Rauschmodell erstellen
Ich möchte MATLAB feval mit Python verwenden
Ich möchte Datetime.now in Djangos Test reparieren
Ich möchte einen DataFrame in MSSQL einfügen
Ich möchte mich mit Schlüsselwortargumenten von Python merken
Ich möchte mit Python ein Fenster erstellen
Wie auch immer, ich möchte JSON-Daten einfach überprüfen
Ich möchte mit Python eine E-Mail von Google Mail senden.
[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 1/3
Ich möchte datetime.datetime.now () auch mit pytest verspotten!
Ich möchte mehrere Bilder mit matplotlib anzeigen.
Ich möchte 100 Datenwissenschaften mit Colaboratory schlagen
Ich möchte ein Spiel mit Python machen