[Python-de] Tausenderpunkt

Bertram Scharpf lists at bertram-scharpf.de
Don Dez 2 09:13:19 CET 2004


Hallo,

Am Mittwoch, 01. Dez 2004, 23:55:00 +0100 schrieb Hans-Peter Jansen:
> On Wednesday 01 December 2004 18:38, Peter Otten wrote:
> > Am Mittwoch, 1. Dezember 2004 18:07 schrieb Christian Klinger:
> > > gibt es irgendwo eine Funktion wie man bei der ausgabe eines
> > > Integer einen 1000er Punkt mit eintragen kann!
> > >
> > >>> import locale
> > >>> locale.setlocale(locale.LC_ALL, "")
> >
> > 'de_DE.UTF-8'
> >
> > >>> locale.format("%d", 10000, True)
> >
> > '10.000'
> 
> Den kannte ich noch nicht: Cool!
> 
> Hier ist meine:
> 
> def fdotval(val, sep='.', blk=3):
>     """ format integer values in dot separated representation """
>     s, r = '%s' % val, ''
>     if s[-1] == 'L':
>         s = s[:-1]
>     while len(s) > blk:
>         r = sep + s[-blk:] + r
>         s = s[:-blk]
>     return s + r
> 
> Die Zeilen 4 und 5 verraten, aus welcher Zeit sie stammt ;-)
> 
> Macht's jemand besser?

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)

Gruß

Bertram

-- 
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-scharpf.de