Seite 1 von 1

Listen bearbeiten Benchmark

Verfasst: Montag 13. Dezember 2004, 15:37
von Dookie
Hallo,

angeregt durch den Thread "Aus einer Liste doppelte Einträge entfernen (Einzeiler)" habe ich ein Benchmarkscript erstellt.
http://www.boa3d.de/python/tools/word_list_test.py
Das Script benötigt Python2.4, für Python < 2.4 müssen die Tests die Generatorexpressions benutzen auskommentiert werden.

Achtung, wenn das Script gestartet wird passiert erstmal scheinbar gar nichts, der erste Test benötigt bei mir (P4 1700 MHz) etwa 60 Sekunden. Also etwas Geduld, oder im Script den Wert der Variablen "times" von 5000 auf einen niedrigeren Wert setzen.

Die Ergebnisse sind IMHO sehr interessant und man sieht, kürzer muss nicht schneller sein.


Gruß

Dookie

Verfasst: Montag 13. Dezember 2004, 19:08
von Milan
Fehler, Fehler Fehler :wink:

Code: Alles auswählen

>>> a=(a for a in "abc")
>>> b=(b*2 for b in a)
>>> for i in a:
	print i

	
a
b
c
>>> for i in b:
	print i

	
>>> 
Und jetzt schau dir im Vergleich mal count_words_gel(liste) an... :lol:
mfG Milan

Verfasst: Montag 13. Dezember 2004, 19:35
von Dookie
Hi Milan,

nix fehler, nur nicht das erwartete Ergebnis, Generatorexpressions sind halt doch nicht so ausgereift ;)
Habe mal ein Update hochgeladen, das liefert die erwarteten Ergebnisse.


Gruß

Dookie

Verfasst: Montag 13. Dezember 2004, 20:01
von Milan
HI. Naja, sind doch schon ausgereift... aber der iterator, der ich verwende, der ist nach einer Iteration ja schon verbraucht. Dumm nur, dass man keine Möglichkeit hat, den Iterator zu kopieren und ihn unverbraucht zu "recyceln". Dafür muss dann doch ein List zum speichern ran, oder ein tee aus dem Modul itertools .

mfG Milan