short-circuiting any/all ?
Steven D'Aprano
steven at REMOVE.THIS.cybersource.com.au
Mon Mar 22 21:30:37 EDT 2010
On Mon, 22 Mar 2010 22:19:57 +0000, kj wrote:
> In <mailman.1069.1269283393.23598.python-list at python.org> Tim Golden
> <mail at timgolden.me.uk> writes:
>
>>On 22/03/2010 18:30, kj wrote:
>>> Thanks! I'm glad to know that one can get the short circuiting using
>>> a map-type idiom. (I prefer map over comprehensions when I don't need
>>> to define a function just for the purpose of passing it to it.)
>
>>In what way does "map" over "comprehensions" save you defining a
>>function?
>
>>any (map (is_invalid, L))
>>any (is_invalid (i) for i in L)
>
> I was talking in the *general* case. map at the very least requires a
> lambda expression, which is a one-time function defintion.
But keep in mind that instead of this:
map(lambda x,y: x+y, somelist)
you can do this:
import operator
map(operator.add, somelist)
In any case, the once-off cost of creating or importing a function is
usually quite cheap. As usual, the best advise is not to worry about
optimization until you have profiled the code and learned where the
actual bottlenecks are. Write what reads best, not what you guess might
be faster, until you really know you need the speed and that it is an
optimization and not a pessimation.
--
Steven
More information about the Python-list
mailing list