calccrypto calccrypto - 6 months ago 63
Python Question

string count with overlapping occurrences

What's the best way to count the number of occurrences of a given string, including overlap in python? is it the most obvious way:

def function(string, str_to_search_for):
count = 0
for x in xrange(len(string) - len(str_to_search_for) + 1):
if string[x:x+len(str_to_search_for)] == str_to_search_for:
count += 1
return count

returns 5


or is there a better way in python?


Well, this might be faster since it does the comparing in C:

def occurrences(string, sub):
    count = start = 0
    while True:
        start = string.find(sub, start) + 1
        if start > 0:
            return count