Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何打印一个在字符串上重复的字母?_Python_String_Printing - Fatal编程技术网

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

Python 如何打印一个在字符串上重复的字母?,python,string,printing,Python,String,Printing,在一个字符串中,我只想打印一个字母,如果它发生了2次,我尝试使用itertools,但是如果这个字母写了4次,它只打印一个,我需要打印2个。 例如: 顺便说一句。使用re.sub()函数(仅假设相邻字符): 输出: running (\S)-包含单个非空白字符的正则表达式捕获组 \1-第一个捕获组的值(前一个字符重复) 您可以尝试以下方法: from itertools import groupby input1 = "rruunnnniinngg" final_string = ''.j

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

顺便说一句。

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

输出:

running

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

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

您可以尝试以下方法:

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'

它可以简单地使用while循环实现:
-在输出字符串中添加当前字符
-检查下一个字符是否与当前字符相同。
-如果是,则通过将计数器额外增加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
定义函数: i=0 p=''
while(如果字母出现3次怎么办?如果重复的字母不相邻怎么办?RomanPerekhrest和kdopen不会发生,因为在此之前我有一个只打印字母2次的代码谢谢这解决了我的问题!!,是的,如果其他人读到这个问题,字符只重复2次。
'running'
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