我需要在类似ACACA的字符串中找到类似“ ACA”的子字符串的数量。我尝试了count(str)
方法,但它只给了我1个而不是2个。如何在这些字符串上找到python中的实际出现次数?
答案 0 :(得分:2)
count
method of strings的文档说:
返回[开始,结束]范围内子字符串sub的不重叠出现次数。
您的子字符串重叠,这就是count
方法不能满足您要求的原因。您可以使用find
方法的可选参数从字符串开头以外的其他地方开始查找计数:
string = 'ACACA'
substr = 'ACA'
substr_count = 0
start = 0
while True:
loc = string.find(substr, start)
if loc == -1:
break
substr_count += 1
start = loc + 1
此例程的循环计数与字符串中子字符串出现的次数相同。您可以使用更简单的例程来检查字符串的每个位置,以查看子字符串是否在该位置,但是这样会导致更多的循环,并且速度会更慢。