itertools.groupby()
Группирует подряд идущие элементы с одинаковым значением ключа.
Сигнатура
itertools.groupby(iterable, key=None)Создаёт итератор пар (ключ, группа), объединяя соседние элементы с одинаковым ключом. Важно: группируются только идущие подряд элементы, поэтому данные обычно предварительно сортируют по тому же ключу.
import itertools
data = [1, 1, 2, 3, 3, 3, 1]
for key, group in itertools.groupby(data):
print(key, list(group))
# 1 [1, 1]
# 2 [2]
# 3 [3, 3, 3]
# 1 [1]