我有一个如下所示的数字字符串。
s =“ 1123433364433”
我想要像这样分割连续相同值的结果列表。 您无法更改原始数字的位置。
结果= [“ 11”,“ 2”,“ 3”,“ 4”,“ 333”,“ 6”,“ 44”,“ 33”]
最简单的方法是什么?
答案 0 :(得分:6)
使用itertools.groupby
:
from itertools import groupby
s = "1123433364433"
print([''.join(i) for _, i in groupby(s)])
这将输出:
['11', '2', '3', '4', '333', '6', '44', '33']
答案 1 :(得分:1)
您也可以使用模块C
:
re
输出:
import re
s = "1123433364433"
print([v[0] for v in re.finditer(r'(.)\1*', s)])