Как подсчитать последовательное максимальное вхождение слова в элемент списка в Python

#python #python-3.x #list #count #counter

#питон #python-3.x #Список #граф #счетчик

Вопрос:

Я пытаюсь реализовать код, который будет подсчитывать самый длинный прогон слова в элементе списка

     for_example = ['smaplakidfsmapsmapsmapuarebeautiful']
 

итак, в этом примере это будет 3, потому что smap был повторен 3 раза, так что есть код, который выполняет эту задачу за меня, независимо от того, что это за слово.

Комментарии:

1. Почему for_example список. Вы ожидаете, что в нем будет более одного элемента? Если да, будет ли результат максимальным для каждого элемента или максимальным для списка?

2. для каждого элемента спасибо, что спросили

3. geeksforgeeks.org/…

4. в этом посте рассказывается о том, как узнать, сколько повторяется, но не последовательно

Ответ №1:

РЕДАКТИРОВАТЬ: Если у вас есть список элементов, вы можете вызвать функцию следующим образом:

 [countMaxConsecutiveOccurences(item, 'smap') for item in items]
 
 def countMaxConsecutiveOccurences(item, s):
    i = 0
    n = len(s)
    current_count = 0
    max_count = 0
    while i < len(item):
        if item[i:i n] == s:
            current_count  = 1
            max_count = max(max_count, current_count)
            i  = n
        else:
            i  = 1
            current_count = 0     
    return max_count

countMaxConsecutiveOccurences('smaplakidfsmapsmapsmapuarebeautiful', 'smap')
 

Комментарии:

1. Да, но в этом коде вы указали ‘smap’, я хочу последовательное максимальное вхождение слова, независимо от того, что это за слово.

2. Вы имеете в виду, что вам нужна максимальная последовательная подстрока?

3. ваша формулировка «определенного слова» создала у меня впечатление, что это был аргумент — возможно, вы захотите отредактировать этот вопрос.

4. Да, конечно, я понимаю недоразумение.

5. Как определить слово? Словом может быть что угодно…