[Python-ideas] Adding an optional function argument to all() and any() builtins
Nick Coghlan
ncoghlan at gmail.com
Mon Nov 22 17:19:55 CET 2010
On Tue, Nov 23, 2010 at 1:58 AM, Bruce Frederiksen <dangyogi at gmail.com> wrote:
> On Mon, Nov 22, 2010 at 6:32 AM, Tim Lesher <tlesher at gmail.com> wrote:
>>
>> That could be the source of some frightening, hard-to-detect regressions:
>>
>> if any([-1,0,1], test=is_even):
>> # never taken, because 0 is returned instead of True
>
> Good point! The only way out of this for what I was wanting that I can
> think of becomes:
>
> first_even = next(filter(is_even, [-1, 0, 1]), None)
>
> In which case, I already have all of the tools that I need!
Again, the generator expression version will be more readable for most folks:
first_even = next((x for x in seq if is_even(x)), None)
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
More information about the Python-ideas
mailing list