python itertools groupby

Полезный и удобный инструмент python itertools groupby, к сожалению, имеет не очень ясное разъяснение в документации, при этом являясь мощным и удобным способом группировки.

itertools.groupby(iterable, key=None) принимает итератор и функцию группировки, а возвращает ключи и сгруппированные по ним итераторы. Если функция группировки не задана, тогда данные будут сгруппированы в том порядке, котором они идут. Зачастую, предварительно следует отсортировать передаваемый итератор.

Пример с дефолтной группировкой

Если предварительно отсортировать входные данные, то результат будет другим

Передача своей функции группировки добавляет удобство в использовании этого инструмента:

Вариант без сортировки:

Вариант с сортировкиой: