Grundlage für größeres Programm - was verbessern?

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

Aber man kann doch auch nichts aus dem Arbeitsspeicher löschen wenn es noch in einer Datenstruktur referenziert wird. Was sollte denn dann passieren wenn man über das Dictionary auf das Objekt zugreift!?

Bei den `iter*()`-Methoden wird keine Liste erstellt. Die würde Speicherplatz verbrauchen. Und um die Liste zu erstellen muss einmal über alle Elemente des Dictionary iteriert werden. Wenn man diese Liste dann in einer Schleife verwendet wird ein zweites mal über alle Elemente iteriert. Also gibt's ohne Liste auch einen Geschwindigkeitsgewinn.
rolgal_reloaded
User
Beiträge: 312
Registriert: Dienstag 24. Oktober 2006, 19:31

BlackJack hat geschrieben:Aber man kann doch auch nichts aus dem Arbeitsspeicher löschen wenn es noch in einer Datenstruktur referenziert wird. Was sollte denn dann passieren wenn man über das Dictionary auf das Objekt zugreift!?
Eigentlich logisch, gut dass ich nachgefragt habe bevor ich in eine falsche Richtung weiterdenke.
BlackJack hat geschrieben: Bei den `iter*()`-Methoden wird keine Liste erstellt. Die würde Speicherplatz verbrauchen. Und um die Liste zu erstellen muss einmal über alle Elemente des Dictionary iteriert werden. Wenn man diese Liste dann in einer Schleife verwendet wird ein zweites mal über alle Elemente iteriert. Also gibt's ohne Liste auch einen Geschwindigkeitsgewinn.
Auch wunderbar erklärt, danke.

Also wäre folgendes eines von vielen konkreten Veranschaulichungen, oder?
Wenn weiters richtig, dann sind die itermethoden auch sehr interessant, wenn innerhalb einer Endlosschleife (while True) z. B. bei einem Vokabeltrainer diese auf Grund einer bestimmten Bedingung verlassen wird (10 Vokabeln hintereinander richtig - Lektionswechsel - neues Dict laden).
LG

rolgal_reloaded
BlackJack

Jup, wenn das Vokabeldictionary 1000 Einträge enthält und man nach 20 die Schleife abbricht, hat man bei `iter*()` auch nur diese 20 "angefasst".
Antworten