[Python-de] 1,2,3,5,7,8,9 -> "1-3,5,7-9"

Alexander 'boesi' Bösecke boesi.josi at gmx.net
Mit Jun 23 15:18:29 CEST 2004


Hi

Am 23.06.2004 10:43:37 schrieb Gerson Kurz:

> Bei meiner Losung ware noch eine Optimierung drin: inplace, dann spart man
> sich den alloc am Anfang => Qualliste ist hin.

Was meinst du mit inplace? 
Die uebergebene Liste gleich als Ausgabeliste zu verwenden?
Das bringt bei mir erst was, wenn der Speicher eng wird, offensichtlich
kann Python Listen besser bearbeiten, wenn diese hauptsaechlich Daten
vom Typ None enthalten. Da faellt dann wohl auch das erzeugen der
extra Liste nicht sonderlich ins Gewicht.

Anzahl Listenelemente: 1000000
Anzahl Loops: 1
Laufzeit pro Loop im Schnitt:
  boesi7    :    1.8212 sec (resListe[k] = `-last` + ',' + `element`)
  boesi8    :    1.8518 sec (liste[k] = `-last` + ',' + `element`, keine separate Liste)
Anzahl Listenelemente: 5000000
Anzahl Loops: 1
Laufzeit pro Loop im Schnitt:
  boesi7    :   12.8621 sec (resListe[k] = `-last` + ',' + `element`)
  boesi8    :    9.6199 sec (liste[k] = `-last` + ',' + `element`, keine separate Liste)

> Die pyd-Losung ist naturlich
> absolut fehlerinsensitiv (z.b. durfte sie bei 0 elementen absturzen - nicht
> getestet schaut aber so aus).

Aber da sieht man sehr schoen, was eingebetteter C-Code leisten kann.
Fazit: Algorithmen + das ganze "Drumherum" in Python entwickeln und bei
Bedarf die Algorithmen einfach nach C uebersetzen. 
Ich weiss das steht in jedem Lehrbuch ueber Python, aber das auch mal an
nem praktischen Beispiel demonstriert zu bekommen find ich gut.

> > @Gerson: es ist nicht grad die feine Art, einbuchstabige Variablennamen
> > zu verwenden.
> 
> OK,  ich habe das korrigiert!!!

hehe gefaellt mir, erinnert ein bisschen an COW, fehlt nur noch das m... :)


cu boesi

PS: in dem Zusammenhang faellt mir noch ein - ist es in Python moeglich
zu bestimmen, wieviel Speicher ein Objekt belegt? (also ich meine keine
elementaren Datentypen, sonder komplexe wie Listen oder Dictionaries)
Mir faellt da spontan nur eine for-Schleife in einer rekursiven Funktion
ein...
-- 
So stellt sich der Atheist doch die                  #1671 : icq-intern
Unsterblichkeit vor - Lokalverbot                #73628288 : icq-extern
auf dem Friedhof.                                boesi111 : aim
                                                      i171 : reallife