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
Listen bearbeiten Benchmark
Fehler, Fehler Fehler
Und jetzt schau dir im Vergleich mal count_words_gel(liste) an...
mfG Milan

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
>>>

mfG Milan
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
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
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]
import this[/code]
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
mfG Milan