iterating in reverse

Cliff Wells LogiplexSoftware at earthlink.net
Fri Jan 17 14:15:11 EST 2003


On Fri, 2003-01-17 at 10:15, Nick Vargish wrote:
> I just encountered a problem that required reverse iterating to solve,
> and my current solution, though it works, is not so satisfying:
> 
> def commafy(val):
>     """Return val as string with commas every thousandth place."""
>     val = str(val)
>     ret = ''
>     c = 0
>     for i in range(len(val) - 1, -1, -1):
>         if c and not c % 3:
>             ret = ',' + ret
>         ret = val[i] + ret
>         c += 1
>     return ret
> 
> This is one of the few times I just haven't been able to come up with
> an elegant and -- dare I say it -- aesthetically pleasing solution in
> Python. I suspect the lack is my own, not Python's.

Here's a variation:

def commafy(val):
    """Return val as string with commas every thousandth place."""
    val = list(str(val))
    ret = ''
    c = 0
    while val:
        i = val.pop()
        if c and not c % 3:
            ret = ',' + ret
        ret = i + ret
        c += 1
    return ret


-- 
Cliff Wells, Software Engineer
Logiplex Corporation (www.logiplex.net)
(503) 978-6726 x308  (800) 735-0555 x308






More information about the Python-list mailing list