Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to find and split a string by repeated characters?

Tags:

python

string

I am trying to split a string into a list, separated by a change in character, in python. I am finding this very difficult, but am sure that I am over thinking it and missing a probably simple solution. Example:

'abgg22ffeeekkkk1zzabbb'

would become:

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

like image 571
Zak Avatar asked Dec 27 '22 14:12

Zak


2 Answers

import itertools
[''.join(value) for key, value in itertools.groupby(my_str)]
like image 155
Ross Patterson Avatar answered Dec 30 '22 09:12

Ross Patterson


>>> 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']
like image 41
Andrew Clark Avatar answered Dec 30 '22 09:12

Andrew Clark