groupby()
даст вам отдельные группы с одинаковым значением по умолчанию:
> [list(g) for k, g in groupby(lst)]
[[6, 6], [7], [1, 1, 1, 1], [4], [1]]
Вы можете передать это в max()
с ключом len
, чтобы получитьсамая длинная:
> from itertools import group-by
> lst = [6, 6, 7, 1, 1, 1, 1, 4, 1]
> max((list(g) for k, g in groupby(lst)), key=len)
[1, 1, 1, 1]
Это самая длинная группировка, из которой вы можете получить длину. В качестве альтернативы вы можете просто составить список длин и вызвать max
без ключа:
max(len(list(g)) for k, g in groupby(lst))