Python 将字符串中的连续相同字符分组到列表中
我希望输入字符串以这样一种方式分开,即所有连续的相同字符都分组在一个列表中 示例1: str: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
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']