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

Python 将字符串中的连续相同字符分组到列表中,python,string,list,implementation,Python,String,List,Implementation,我希望输入字符串以这样一种方式分开,即所有连续的相同字符都分组在一个列表中 示例1: str:aabbcccdedgg 输出:['aa','bb','ccc','d','e','dd'] 所需输出:['aa','bb','ccc','d','e','dd','gg'] 示例2: str:helloop 输出:['h','e','ll','oo'] 所需输出:['h','e','ll','oo','p'] 关于使用以下代码: s = input() li = [] temp_li = [] gr

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

示例1:

str
aabbcccdedgg

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

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

示例2:

str
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)
注意:程序不显示最后一组相同字符的输出

社区期望的答案:

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

您需要将
li.append(grp)
置于
for
循环之外,以包括最后一个匹配的组:

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

li.append(grp) #account for last instance of grp
输出(对于
s='helloop'
):


@user3483203我相信这个问题不会重复,因为在这个问题中,我也要求修改当前代码。
for ch in s[1:]:
  if ch== grp[-1]:
    grp+=ch
  else:
    li.append(grp)
    grp = ch

li.append(grp) #account for last instance of grp
['l', 'e', 'll', 'oo', 'p']