Счетчик строк Python не работает должным образом? [Дубликат]

На этот вопрос уже есть ответ здесь:

Как я могу найти количество перекрывающихся последовательностей в строке с Python? [Дубликат] 4 ответа

Есть два вхождения 'aba' в 'ababa' (0-й индекс и 2-й индекс):

myString = 'ababa'
print(myString.count('aba'))

Тем не менее, этот код выводит значение: 1
Я знаю, что этот вопрос кажется очень простым, но разве ответ не должен быть 2 здесь?
Если нет, то разве функция подсчета не выполняет то, что должна?

Есть ли простая альтернатива?

 TessellatingHeckler23 июн. 2016 г., 03:41
если ты сделал"a".count("a") Вы ожидаете бесконечность как граф? Почему бы и нет?
 Moon Cheesez23 июн. 2016 г., 03:32
Это правильно.ababa - aba = ba. ba не являетсяaba, Так вот 1.
 Headcrab23 июн. 2016 г., 03:35

Ответы на вопрос(2)

Решение Вопроса

Документация по строковым функциям Python

Вернуть количествонепересекающиеся вхождения подстроки sub в диапазоне [начало, конец]. Необязательные аргументы start и end интерпретируются как обозначения срезов.

count не учитывает перекрывающиеся вхождения.

Если вы хотите подсчитать перекрывающиеся вхождения, вы можете использовать регулярное выражение с предварительным утверждением:

import re
print(len(re.findall('(?=aba)', 'ababa')))

https://docs.python.org/2/library/string.html

Возвращает количество (не перекрывающихся) вхождений подстроки sub в строке s [start: end]. Значения по умолчанию для начала и конца и интерпретация отрицательных значений такие же, как для срезов.

Ваш ответ на вопрос