En Tue, 27 Oct 2009 04:31:22 -0300, Gerard Flanagan <grflana...@gmail.com> escribió:

alex23 wrote:
Gerard Flanagan <grflana...@gmail.com> wrote:
def count(text, *args):
 Other than the ability to handle multiple substrings, you do realise
you've effectively duplicated str.count()?

I realise that calling this count function with a single argument would be functionally identical to calling str.count(), yes. But I can imagine the situation of wanting to find multiple (disjoint) substrings. Is there a reason for preferring multiple calls to str.count() in such a case? Or is there a more obvious approach?

There is a more efficient algorithm (Aho-Corasick) which computes all occurences of a set of substrings inside a given string at once. It *should* be faster than repeatly calling str.find for every substring, and faster than using regular expressions too. (note that you get not only the count of occurences, but their positions too). I've seen a couple implementations for Python; if they're *actually* faster is to be determined...

--
Gabriel Genellina

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

Reply via email to