On Jun 14, 2:53 pm, Ping <[EMAIL PROTECTED]> wrote: > Hi, > > I'm wondering if it is useful to extend the count() method of a list > to accept a callable object? What it does should be quite intuitive: > count the number of items that the callable returns True or anything > logically equivalent (non-empty sequence, non-zero number, etc). > > This would return the same result as len(filter(a_callable, a_list)),
map and filter are basically obsolete after the introduction of list comprehensions; your expression is equivalent to: len([i for i in a_list if a_callable(i)]) Which can then be converted into a generator expression (round brackets instead of square brackets) to avoid the intermediate list: len((i for i in a_list if a_callable(i))) Or syntactically equivalent (avoiding lispy brackets): len(i for i in a_list if a_callable(i)) > but without constructing an intermediate list which is thrown away > after len() is done. > > This would also be equivalent to > n = 0 > for i in a_list: > if a_callable(i): n += 1 > but with much shorter and easier-to-read code. It would also run > faster. > > This is my first post and please bear with me if I'm not posting it in > the right way. > > Regards, > Ping -- http://mail.python.org/mailman/listinfo/python-list