samwyse wrote: > Lately, I've slinging around a lot of lists, and there are some simple > things I'd like to do that just aren't there. > > s.count(x[, cmp[, key]]) > - return number of i‘s for which s[i] == x. 'cmp' specifies a custom > comparison function of two arguments, as in '.sort'. 'key' specifies > a custom key extraction function of one argument.
What's your use case exactly? If I were to enhance count/index/rindex I would go for the simpler >>> missing = object() >>> class List(list): ... def count(self, value=missing, predicate=missing): ... if value is missing: ... if predicate is missing: ... raise TypeError ... return sum(1 for item in self if predicate(item)) ... else: ... if predicate is not missing: ... raise TypeError ... return list.count(self, value) ... >>> items = List(range(10)) >>> items.count(7) 1 >>> items.count(predicate=lambda item: item%3) 6 which nicely covers all applications I can imagine. Peter -- http://mail.python.org/mailman/listinfo/python-list