Если вы ищете только один символ, это будет работать:
string = "dooobiedoobiedoobie"
match = 'o'
reduce(lambda count, char: count + 1 if char == match else count, string, 0)
# produces 7
Кроме того,
string = "test test test test"
match = "test"
len(string.split(match)) - 1
# produces 4
Мое догадку заключается в том, что ни один из них (особенно # 2) ужасно совершенен.