我希望输入字符串以所有连续的相同字符都组合在一个列表中的方式分隔。
示例1
: str :aabbcccdeddgg
输出: ['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)
注意:程序未显示最后一组相同字符的输出
社区的期望答案:
答案 0 :(得分:0)
from itertools import groupby
x = "aabbcccdeddgg"
[''.join(g) for _, g in groupby(x)]
>> ['aa', 'bb', 'ccc', 'd', 'e', 'dd', 'gg']
答案 1 :(得分:0)
您需要将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'
):
['l', 'e', 'll', 'oo', 'p']