groupby
группирует последовательные итераторы по некоторым key
.Если ключ не указан, предикат группировки по умолчанию состоит в том, что последовательные элементы должны быть одинаковыми.Итак, чтобы подвести итог, groupby
группирует идентичные последовательные элементы вместе.
Исчерпывая groupby
, вы видите, что он возвращает кортежи:
list(groupby('aaacaccccccbbbb'))
[('a', <itertools._grouper at 0x12f132a58>),
('c', <itertools._grouper at 0x12f132d30>),
('a', <itertools._grouper at 0x12f132cf8>),
('c', <itertools._grouper at 0x12f1b9da0>),
('b', <itertools._grouper at 0x12f1a68d0>)]
Каждый кортеж является парой <group_key, [group_values_iterator]>
, что соответствует str
и grp
в понимании списка.grp
- это в основном элементы этой группы.Понимание списка исчерпывает итератор grp
и объединяет символы.