Как найти и разбить строку по повторяющимся символам? - PullRequest
4 голосов
/ 31 августа 2011

Я пытаюсь разбить строку на список, разделенный изменением символа, в python. Я нахожу это очень трудным, но я уверен, что переборщил и упустил, вероятно, простое решение. Пример:

'abgg22ffeeekkkk1zzabbb'

станет:

['a', 'b', 'gg', '22', 'ff', 'eee', 'kkkk', '1', 'zz', 'a', 'bbb']

Ответы [ 2 ]

7 голосов
/ 31 августа 2011
import itertools
[''.join(value) for key, value in itertools.groupby(my_str)]
3 голосов
/ 31 августа 2011
>>> import re
>>> my_str = 'abgg22ffeekkkk1zzabbb'
>>> [m.group() for m in re.finditer(r'(.)\1*', my_str)]
['a', 'b', 'gg', '22', 'ff', 'ee', 'kkkk', '1', 'zz', 'a', 'bbb']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...