Listen bearbeiten Benchmark

Code-Stücke können hier veröffentlicht werden.
Antworten
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Montag 13. Dezember 2004, 15:37

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
[code]#!/usr/bin/env python
import this[/code]
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Montag 13. Dezember 2004, 19:08

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
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Montag 13. Dezember 2004, 19:35

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
[code]#!/usr/bin/env python
import this[/code]
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Montag 13. Dezember 2004, 20:01

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
Antworten