必须将所有连续的字符组组合在一起并放入列表中。例如,如果我有这个字符串:
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']
有更简单的解决方案吗?我想我正在推翻这个。
答案 0 :(得分:3)
itertools.groupby
就是这样做的:
>>> from itertools import groupby
>>> [''.join(g) for _, g in groupby('1112221121')]
['111', '222', '11', '2', '1']