【发布时间】:2011-09-01 02:27:37
【问题描述】:
我试图在 python 中将一个字符串拆分为一个列表,由字符的变化分隔。我发现这非常困难,但我确信我想多了,错过了一个可能简单的解决方案。 示例:
'abgg22ffeeekkkk1zzabbb'
会变成:
['a', 'b', 'gg', '22', 'ff', 'eee', 'kkkk', '1', 'zz', 'a', 'bbb']
【问题讨论】:
我试图在 python 中将一个字符串拆分为一个列表,由字符的变化分隔。我发现这非常困难,但我确信我想多了,错过了一个可能简单的解决方案。 示例:
'abgg22ffeeekkkk1zzabbb'
会变成:
['a', 'b', 'gg', '22', 'ff', 'eee', 'kkkk', '1', 'zz', 'a', 'bbb']
【问题讨论】:
import itertools
[''.join(value) for key, value in itertools.groupby(my_str)]
【讨论】:
>>> 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']
【讨论】: