如何分隔一串重复的字符?

时间:2017-07-20 20:23:25

标签: python

必须将所有连续的字符组组合在一起并放入列表中。例如,如果我有这个字符串:

1112221121

我想把它拆分成一个列表:

['111', '222', '11', '2', '1']`

另一个例子是

0011100000

输出:['00', '111', '00000']

这就是我提出的:

In [146]: t = '0011100000'
     ...: out = [] 
     ...: prev = None
     ...: for c in t:
     ...:     if c != prev:
     ...:         prev = c
     ...:         out.append('')
     ...:     out[-1] += c
     ...:     

In [147]: out
Out[147]: ['00', '111', '00000']

有更简单的解决方案吗?我想我正在推翻这个。

1 个答案:

答案 0 :(得分:3)

itertools.groupby就是这样做的:

>>> from itertools import groupby
>>> [''.join(g) for _, g in groupby('1112221121')]
['111', '222', '11', '2', '1']