Hallo..ich arbeite momentan an dem Quicksortalgorithmus. Im Internet habe ich mir zur Hilfe verschiedene Implementierungen angeschaut und bin dabei auf eine gestoßen, die mich an 2 Stellen ziemlich verwirrt, da ich dem noch nie begegnet bin:
einmal:
"i for i in liste if i < pivot " wie darf ich das mit den 3 i's interpretieren?
sorry, mir erscheint das "i for i" irgendwie sinnlos...der Rest ergibt ja sinn, aber in dem Punkt bin ich überfragt...
und das zweite:
if __name__ == "__main__":
Das kann ich mir leider überhaupt nicht erklären. Was ist mit __name__ und was ist mit __main__ gemeint?
Tut mir leid, wenn die Fragen euch eventuell blöd erscheinen. Ich bin Einsteigerin, was das Programmieren zu tun hat und daher fehlt mir jegliches Grundwissen.
Probleme bei der Quicksortimplementierung. Hilfe :S
Code: Alles auswählen
i for i in liste if i < pivot
Code: Alles auswählen
python meinmodul.py
Nachtrag:
Die list-comprehension könnte man auch so schreiben:
Code: Alles auswählen
elements = []
for element in liste:
if element < pivot:
elements.append(element)
Zuletzt geändert von frabron am Montag 19. Dezember 2011, 11:51, insgesamt 1-mal geändert.
Zu 1:
das ist syntaktisch korrekt, das ganze heißt List Comprehension und wird hier erklärt: http://docs.python.org/tutorial/datastr ... rehensions
Allerdins hast du es in deinem Post aus dem Zusammenhang gerissen, denn korrekt müsste es so aussehen damit es Sinn macht:
Die eckigen Klammern stehen da ja nicht grundlos
zu 2)
Das ist der übliche Weg um Code nur dann ausführen zu lassen wenn es nicht über den Import-Befehl importiert wurde. Dann ist __name__ nämlich "__main__".
das ist syntaktisch korrekt, das ganze heißt List Comprehension und wird hier erklärt: http://docs.python.org/tutorial/datastr ... rehensions
Allerdins hast du es in deinem Post aus dem Zusammenhang gerissen, denn korrekt müsste es so aussehen damit es Sinn macht:
Code: Alles auswählen
[i for i in liste if i < pivot]
zu 2)
Das ist der übliche Weg um Code nur dann ausführen zu lassen wenn es nicht über den Import-Befehl importiert wurde. Dann ist __name__ nämlich "__main__".
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Es könnten auch runde sein, wenn es sich um einen Generatorausdruck handelte Aber es stimmt schon, dass der Kontext wichtig ist.sparrow hat geschrieben: Die eckigen Klammern stehen da ja nicht grundlos
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Oder sie können auch fehlen, wenn es ein Generatorausdruck in einem Funktionsaufruf als einziger Parameter ist.Hyperion hat geschrieben:Es könnten auch runde sein, wenn es sich um einen Generatorausdruck handelte
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice