给定一个字符串,如何删除所有重复的连续字母?
问题描述
如何从字符串中删除两个连续的字母?
例如:
a_str = 'hii thherre'
应变为
'hi there'
我尝试过:
a_str = ''.join(sorted(set(a_str), key=a_str.index))
但是,我收到:
'hi ter'
解决方案
在这种情况下,如果我理解正确的话,您只需要取每个连续相等字母序列中的一个。考虑是的,[三个或四个连续字母]也可以考虑
itertools.groupby
。
>>> from itertools import groupby
>>> a_str = 'hii thherre'
>>> ''.join(k for k, _ in groupby(a_str))
'hi there'
编辑:奖金正则表达式
>>> import re
>>> re.sub(r'(.)1*', r'1', a_str)
'hi there'
相关文章