Python 如何打印一个在字符串上重复的字母?
在一个字符串中,我只想打印一个字母,如果它发生了2次,我尝试使用itertools,但是如果这个字母写了4次,它只打印一个,我需要打印2个。 例如: 顺便说一句。使用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
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