On Apr 27, 1:10 pm, Terry Reedy <tjre...@udel.edu> wrote:
> The difference between
>
> hasvowels = lambda x:max([y in x for y in "aeiou"])
>
> and
>
> def hasvowels(x): return max([y in x for y in "aeiou"])
>
> is that the first is 4 chars shorter, but the result has a generic
> .__name__ attribute of '<lambda>' insteand of the specific 'hasvowels',
> which is definitely more useful.  Given this and the that the main
> purpose of lambda is to avoid a local name binding, many consider its
> use in 'name = lambda...' to be bad form.
>
> tjr

Point taken.  Thanks for the explanation, Terry!  Thanks also to John
for pointing out the execution speed difference when compared to
regular expressions.  I try as much as possible to experiment with
different variations for certain code blocks, but I still don't have
enough of the language in my head to think of all the possible
alternatives.  Those examples are great for oiling the mental
machine.  Cheers!

Justin
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to