Was ist schneller: Schleife gegen Einzeiler

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

droptix hat geschrieben:Leider stehen diese versteckten Methoden wie `__cmp__` oder `__hash__` nicht in meinem Büchlein.
Dann benutzt Du das falsche Büchlein. :-)
Du meinst, dass der gesamte Baum dann durch ein set() abgebildet wird? Um auch umgekehrt die Pfade auflösen zu können, könnte man ja für jedes Element noch das Attribut `children` als set() einführen. Und für eine eindeutige ID eben noch ein Attribut `id`. Irgendwann muss ich das ja mal flach machen und dann bleibt mir nur der Weg über eine ID.
Eigentlich reicht es wenn man den Baum nur durch einzelne Elemente darstellt, ohne `set()`. Man muss sich nur den Wurzelknoten merken, der Rest hängt da ja dran und ist über die Kinder zu erreichen. Ich hatte hier ja schonmal eine Lösung als Objektbaum gebastelt:

http://paste.pocoo.org/show/485/

Da gibt's beim Aufbau des Baums mit `directory_map` noch ein Dictionary, das komplette Verzeichnispfade als Zeichenkette auf das entsprechende `Directory`-Objekt abbildet, aber das ist nur um die Zeit zu sparen sich durch den Baum zu arbeiten. Man könnte stattdessen auch den Pfad zerlegen und von der Wurzel bis zum gewünschten Verzeichnis laufen. Dann wäre es geschickter `Directory.children` als Dictionary zu implementieren und dort die Namen der Unterverzeichnisse einzutragen. Das wäre vielleicht sowieso geschickter.
Ich weiß auch immer nicht, ab wann eine Kopie angefertigt und an welchen Stellen nur referenziert wird. Gibt's dazu mal ne verständliche Erklärung im Netz?
Bei einfachen Zuweisungen werden *nie* Kopien angelegt.
Antworten