Python - 在字符串中合并重复字符(ins sequence)?

时间:2016-09-13 12:07:25

标签: python string

当我在序列中重复多次的特定字符时,我想合并它,因此不会有相同的相邻字符。

例如:

s = 'aa.bc.a.d.aaa.z'
# after merging repeating "a" character in a sequence:

输出a.bc.a.d.a.z

P.S。我能够找到这种匹配的开始和结束索引(使用正则表达式),但仍然看不到像我需要那样合并那些的正常方式。

只是为了澄清我是如何找到它的:

import re
f = re.finditer('(a){2,}', s)
for match in f:
  match.span()
(0, 2)
(10, 13)

3 个答案:

答案 0 :(得分:1)

尝试:

>>> re.sub(r'(\D)\1+', r'\1', s)
'a.bc.a.d.a.z'

答案 1 :(得分:0)

这个怎么样:

string = 'aa.bc.a.d.aaa.z'
res = ""
for c in string:
   if not res.endswith(c):
   res += c

答案 2 :(得分:0)

您可以使用itertools.groupby

s = ''.join(ch for ch, _ in itertools.groupby('aa.bc.a.d.aaa.z'))