这是我的代码:
l = []
p = 'abbdccc'
for i in range(len(p)-1):
m = ''
if p[i] == p[i+1]:
m +=p[i]
l.append(m)
print(l)
Run Code Online (Sandbox Code Playgroud)
b并且c重复超过1次['bb', 'ccc']如果我的字符串是'34456788'那么我的输出是['44', '88']
如果使用正则表达式是可能的或者您感兴趣,re.findall提供了一种非常简单的方法来执行此操作:
inp = "abbdccc"
matches = [x[0] for x in re.findall(r'((.)\2+)', inp)]
print(matches) # ['bb', 'ccc']
Run Code Online (Sandbox Code Playgroud)
groupbyfrom itertools import groupby
[v for _, g in groupby(s) if (v := ''.join(g)) and len(v) > 1]
Run Code Online (Sandbox Code Playgroud)
输入字符串的示例运行s:
# input: 'abbdccc'
# output: ['bb', 'ccc']
# input: '34456788'
# output: ['44', '88']
Run Code Online (Sandbox Code Playgroud)