如何打印一个在字符串上重复的字母?

时间:2017-10-01 21:17:56

标签: python string printing

在一个字符串中,我想只打印一个字母,如果它发生了2次,我尝试使用itertools,但如果写了4次,它只打印一个,我需要打印2。 例如:

input = rruunnnniinngg
output = running

谢谢你。

3 个答案:

答案 0 :(得分:3)

使用re.sub()函数(假设只有相邻的字符):

import re

s = 'rruunnnniinngg'
result = re.sub(r'(\S)\1', '\\1', s)

print(result)

输出:

running
  • (\S) - 正则表达式捕获的包含单个非空白字符的组

  • \1 - 第一个捕获组的值(重复前一个字符)

答案 1 :(得分:0)

你可以试试这个:

from itertools import groupby
input1 = "rruunnnniinngg"
final_string = ''.join(map(lambda x: x[:(len(x)/2)], [''.join(list(b)) for a, b in groupby(input1)]))

输出:

'running'

答案 2 :(得分:0)

可以使用while循环简单地实现:
    -adds输出字符串中的当前字符
     - 检查天气,下一个字符与当前字符相同      - 如果是,则它通过增加1个单位的计数器来跳过下一个字符。

def func(s):
    i=0
    p=''
    while(i<len(s)-1):
         p+=s[i]
         if(s[i+1]==s[i]):
            i+=1
         i+=1
    return p