Python 计算行中字符串中的重复字符数
我想检查一个字符串中的重复字符,直到下一个空格。Python 计算行中字符串中的重复字符数,python,Python,我想检查一个字符串中的重复字符,直到下一个空格。 例如: 下面的字符串连续有4个O,我想以某种方式检测它。 myString='I在一行中包含fooour O,没有任何空格' 不管是什么字符,只要连续重复4次,没有空格 我如何才能做到这一点?我有哪些选择?试试这个: myString = "I contain foooour O's in a row without any space" def count_repeat(some_string): counter
例如:
下面的字符串连续有4个O,我想以某种方式检测它。
myString='I在一行中包含fooour O,没有任何空格'
不管是什么字符,只要连续重复4次,没有空格 我如何才能做到这一点?我有哪些选择?试试这个:
myString = "I contain foooour O's in a row without any space"
def count_repeat(some_string):
counter = 1
max_counter = 0
tmp = some_string[0]
for i in range(1, len(some_string)):
if tmp == some_string[i] and some_string[i] != " ":
counter += 1
else:
max_counter = counter if max_counter < counter else max_counter
counter = 1
tmp = some_string[i]
return max_counter
print(count_repeat(myString))
一个通用的解决方案可能是将
re.findall
与模式(\S)\1{3,}
一起使用:
myString=“我在一行中包含fooour O,没有任何空格”
matches=re.findall(r'(\S)\2{3,}'),myString)
打印(匹配[0][0])
这张照片是:
oooo
上述代码将显示一行中重复4次的任何字符。它将打印重复的字符。您的问题不清楚:“检测”是什么意思?你的确切预期产出是多少?如果相同/不同的字符有许多重复,该怎么办?请澄清。但是不管你期望的结果是什么,请注意,这个问题肯定已经在这里被提出和回答了……只是一种检测它的方法。不管它是一个返回true的函数还是有一个正则表达式可以用于这种情况。我只是想要选择。我能找到的最接近的问题是关于一个字符串中有多少个重复字符的问题,而不是所说字符串中的一行。
oooo
import string
myString = "I contain foooour O's in a row without any space"
alphabet_lowercase = list(string.ascii_lowercase)
alphabet_uppercase = list(string.ascii_uppercase)
for index in range(26):
if alphabet_lowercase[index] * 4 in myString:
print(f"Found {alphabet_lowercase[index]}")
if alphabet_uppercase[index] * 4 in myString:
print(f"Found {alphabet_uppercase[index]}")