On Jun 15, 9:15 am, Ping <[EMAIL PROTECTED]> wrote: > > sum(1 for i in a_list if a_callable(i)) > > > -- > > Carsten Haesehttp://informixdb.sourceforge.net > > This works nicely but not very intuitive or readable to me. > > First of all, the generator expression makes sense only to > trained eyes. Secondly, using sum(1 ...) to mean count() > isn't very intuitive either.
Then wrap it in a function: def count(a_list, a_function): return sum(1 for i in a_list if a_function(i)) And call the function. You can also give it a different name (although I can't think of a concise name that would express it any better). > I would still prefer an expression like a_list.count(a_callable), > which is short, clean, and easy to understand. :) However, > it does produce ambiguities if a_list is a list of callables. > Should the count() method match values or check return values > of a_callable? There are several possible designs but I'm not > sure which is better. Indeed, the ambiguity in that situation would be a reason *not* to introduce such behavior, especially since it would break older programs that don't recognize that behavior. Just stick with writing the function, as shown above. -- http://mail.python.org/mailman/listinfo/python-list