functional programming with map()

Emile van Sebille emile at
Mon Feb 25 05:43:34 CET 2002

"Paul Rubin" 
> Both of those build up a new list of the results, instead of
> discarding the values.  If the f function takes an integer and
> computes a 20-megabyte structure, you've got a problem.  

If you know it's coming, throw it away first:

[x.f() and None for x in items]

> This really
> calls for a generator comprehension as discussed a few weeks back.
>    reduce(lambda x,y:(y.f(),0)[1], items, 0)
> almost works, but invokes f an extra time at the end.
> Someone see how to fix it?

Expanding the above to:

filter(None,[x.f() and None for x in items])

returns an empty list vs 0 for the reduce.  


Emile van Sebille
emile at


More information about the Python-list mailing list