Какой самый эффективный способ найти индекс последовательно повторяющихся чисел?Индекс должен быть индексом первого числа в последовательно повторяющихся рядах.
Моя первая мысль - это библиотека itertools, но как я могу найти индекс числа?Я попытался перечислить и найти одно решение для этого вопроса:
def foo(ls):
result = [None, 0, -1] # record number, number of occurrence, and index
track = [None, 0, -1] # keep track for the current number
for index, value in enumerate(ls):
if value == track[0]:
track[1] += 1
else:
track[0] = value
track[2] = index
if track[1] > result[1]:
result[0] = track[0]
result[1] = track[1]
result[2] = track[2]
return result[2]
Например, если вход представляет собой список [1,2,3,3,3,9,9,9], теперь 3и 9, оба повторяются последовательно три раза, на выходе должен быть индекс большего (9), то есть 5. И если входом является список [1,9,9,3,2,9,9,9] на выходе должен быть индекс 5.