# start = True: Count the chars at the beginning of the string
# start = False: Count the chars at the end of the string
def count_char(string= '', char='', start=True):
count = 0
if not start:
string = string[::-1]
for k in string:
if k is char:
count += 1
else:
break
return count
a = 'ffffhuffh'
print(count_char(a, 'f'))
b = a[::-1]
print(count_char(b, 'f', start=False))
7条答案
按热度按时间k10s72fa1#
一个简短而简单的方法是使用
str.lstrip
方法,并计算长度差。str.lstrip([chars])
:返回删除了前导字符的字符串的副本。chars参数是一个指定要删除的字符集的字符串。
vuv7lop32#
使用itertools.takewhile()试试这个方法:
类似地,对于计数末尾的字符:
z8dt9xmd3#
你可以使用 regular expression 和
re.match
来查找字符串开头的任何字符:93ze6v8z4#
你可以创建一个函数,遍历你的字符串,并返回输入字符串开头或结尾的所需字符的计数,如下所示:
输出:
ngynwnxp5#
基于Oscar洛佩斯的回答,我想处理你提到的字符串结尾的情况:使用
reversed()
q3qa4bjr6#
您也可以使用
itertools.groupby
来查找字符串开头的第一个元素的出现次数:样品运行:
kx1ctssn7#
re.sub选择第一个字母,重复((^(\w)\2*)),len计数频率。