Я пытаюсь научиться использовать itertools.groupby в Python и хочу узнать размер каждой группы символов. Сначала я пытался посмотреть, смогу ли я найти длину одной группы:
Код: Выделить всё
from itertools import groupby
len(list(list( groupby("cccccaaaaatttttsssssss") )[0][1]))
и каждый раз получал 0.
Я провел небольшое исследование и обнаружил, что другие люди делают это таким образом:
Код: Выделить всё
from itertools import groupby
for key,grouper in groupby("cccccaaaaatttttsssssss"):
print key,len(list(grouper))
Это прекрасно работает. Что меня смущает, так это то, почему последний код работает, а первый нет? Если бы я хотел получить только n-ю группу, как я пытался сделать в исходном коде, как бы я это сделал?