如何在python3中拆分字符串以将重复项合并在一起

时间:2019-07-11 15:39:11

标签: python python-3.x string split repeat

如何通过以下方式分割字符串:

a = "111554222117"

我的目标是将字符串分成几部分,其中连续的重复将分组在一起。输出将是一个列表

b = ['111','55','4','222','11','7']

PS:不能使用itertools之类的工具,因为这是一个面试问题。

我的尝试是至少使用两个for循环,但这是无效的。如何仅使用一个loop

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以这样做:

>>> import itertools
>>> [''.join(data) for _, data in itertools.groupby("111554222117")]
['111', '55', '4', '222', '11', '7']

答案 1 :(得分:1)

a = "111554222117"
b = []
s = a[0]
for i in range(1,len(a)):
    if a[i] == s[0]:
        s += a[i]
    else:
        b.append(s)
        s = a[i]
b.append(s)