[Python-3000] what do I use in place of reduce?

Nicholas T ntung at ntung.com
Thu Apr 24 07:06:47 CEST 2008


On Wed, Apr 23, 2008 at 9:08 PM, Alex Martelli <aleaxit at gmail.com> wrote:

> On Wed, Apr 23, 2008 at 6:47 PM, Guido van Rossum <guido at python.org>
> wrote:
> > On Wed, Apr 23, 2008 at 1:56 PM, Nicholas T <ntung at ntung.com> wrote:
> >
> > >    It's obvious how to use LC's to replace map and filter, but what
> about
> >  > reduce? It is one of my favorite functions.
> >  >
> >  > >>> time=1901248
> >  > >>> reduce(lambda a, b: a[:-1] + [a[-1]%b, math.floor(a[-1]/b)],
> [[time],
> >  > 60, 60, 24])
> >  >  [28, 7.0, 0.0, 22.0] # secs, mins, hrs, days
> >
> >  I recommend learning how to use a good old for-loop. That example is
> >  as cryptic as can be. It's also inefficient due to calling a function
> >  for each iteration.
>
> I normally frown on "me too" posts, but this time I won't refrain from
> a loud "hear, hear!". "Clever" code is NOT a culturally positive trait
> in the Python community (differently from most language communities...
> and this is in fact one reason I love Python).
>
> Alex
>

It wasn't only posted to be cryptic, it's one thing that's difficult to
write with a for loop without a lot of verbosity (at least I couldn't figure
out how to do it...).

Nicholas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-3000/attachments/20080423/d81ef8db/attachment.htm>


More information about the Python-3000 mailing list