将字符串中 i 个连续相同的字符分组到列表中

p.r*_*ram 5 python string implementation list

我希望以这样的方式分隔输入字符串,即所有连续的相同字符都分组在一个列表中。

示例1:

字符串aabbcccdeddgg

输出: ['aa', 'bb', 'ccc', 'd', 'e', 'dd']

期望的输出: ['aa', 'bb', 'ccc', 'd', 'e', 'dd', 'gg']

示例2:

字符串helloop

输出: ['h', 'e', 'll', 'oo'] 期望输出: ['h','e','ll','oo','p']

关于使用以下代码:

s = input()
li = []
temp_li = []
grp = s[0]
for ch in s[1:]:
    if ch== grp[-1]:
        grp+=ch
    else:
        li.append(grp)

        grp = ch
print(li)
Run Code Online (Sandbox Code Playgroud)

注意:程序不显示最后一组相同字符的输出

社区的预期答案:

  • 修改上面的程序以显示正确的输出
  • 或一般更好的解决方案

小智 5

from itertools import groupby
x = "aabbcccdeddgg"
[''.join(g) for _, g in groupby(x)]

>> ['aa', 'bb', 'ccc', 'd', 'e', 'dd', 'gg']
Run Code Online (Sandbox Code Playgroud)