Operators as functions

Steven Bethard steven.bethard at gmail.com
Tue Dec 21 00:19:24 CET 2004


Peter Hansen wrote:
> However, none of this is considered the best approach these days,
> with the advent of list comprehensions and generator expressions.
> Here's the old approach (shown above) and the shiny new modern
> Pythonic approach (requires Python 2.4):
> 
>  >>> theList = range(10)
>  >>> import operator
>  >>> reduce(operator.add, map(str, theList))
> '0123456789'
>  >>> ''.join(str(x) for x in theList)
> '0123456789'

Also worth noting is that the shiny new modern version is also the 
faster version:

$ python -m timeit -s "import operator; L = range(10000)" 
"reduce(operator.add, map(str, L))"
10 loops, best of 3: 89.9 msec per loop

$ python -m timeit -s "L = range(10000)" "''.join(str(x) for x in L)"
100 loops, best of 3: 15.3 msec per loop

[run with Python 2.4 on a 2.26GHz Pentium 4]

Steve



More information about the Python-list mailing list