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

Alexander 'boesi' Bösecke boesi.josi at gmx.net
Die Jun 22 08:29:16 CEST 2004


Hi

Am 21.06.2004 14:02:30 schrieb Andreas Jung:


> > Das letzte ist dann aber fast schon Erbsenzaehlerei.
> > append und extend im Vergleich:
> Wer solchen Code (wegen ein bischen Erbsenzählerei) produziert gehört mit
> drei Perlbüchern gehauen :-)

Ohje merkt man mir meine schaendliche Perlvergangenheit so schlimm an?
*gg*
Am "schoensten" ist es sicher, wenn man den Ausgabestring direkt
zusammenbaut, aber wir haben ja bereits gelernt, dass Python in diesem
Bereich a****lahm ist und man deswegen zB den Umweg ueber eine Liste
geht. Und welche Variante man da dann am "schoensten" findet, ist in
meinen Augen hauptsaechlich eine Sache der Gewohnheit.

--------
Am 21.06.2004 16:31:53 schrieb Christian Tismer:

> >     resListe.extend(('-', `last`, ',', `element`))
> 
> Aber vermutlich hast Du hier unabsichtlich ein Tupel
> kreiert, was zu einer Liste konvertiert werden muß.
> Keine Zeit zum testen, aber wie benimmt sich
> 
>      resListe.extend(['-', `last`, ',', `element`])

Aehm noe also eigentlich bin ich ganz spontan davon ausgegangen, dass
das Erzeugen eines Tupel schneller geht als das einer Liste. Warum kann
ich nicht sagen und auch nicht ob das stimmt, aber...

Anzahl Listenelemente: 1000000
Anzahl Loops: 100
Laufzeit pro Loop im Schnitt:
  boesi     :    2.0425 sec (resListe.append('-' + `last` + ',' + `element`))
  boesi2    :    2.1516 sec (resListe.extend(('-', `last`, ',',`element`)))
  boesi3    :    2.3793 sec (resListe.append('-%d,%d' % (last, element)))
  boesi4    :    2.3118 sec (resListe.extend(['-', `last`, ',', `element`]))


cu boesi
-- 
                                                     #1671 : icq-intern
<THammY-> und meine hände ham bisher immer       #73628288 : icq-extern
nur das gemacht was ich will </THammY>            boesi111 : aim
                                                      i171 : reallife