[Python-de] Tausenderpunkt

Detlef Lannert lannert at uni-duesseldorf.de
Don Dez 2 11:55:56 CET 2004


Bertram Scharpf <lists at bertram-scharpf.de> wrote:
> Ein wenig kürzer, ein wenig kryptischer, dafür ein wenig
> mehr pythonisch, vielleicht ein bißchen schneller:
> 
>     def fmtd( v):
>         v, l = str( v), []
>         while v:
>             v, l[:0] = v[:-3], [ v[-3:]]
>         return '.'.join( l)

Es geht noch kryptischer -- ich würde mich allerdings nicht festlegen
wollen, ob es so pythonischer, schneller oder auch nur kürzer ist:

    def fmtd(v):
        s = str(v)
        l = len(s)
        return ".".join([s[-i-3:-i or l] for i in range(0, l, 3)][::-1])

Notfalls kann man das auch als lambda schreiben.

;-)

  Detlef