Python中的连续子字符串

时间:2018-08-04 23:16:34

标签: python string substring

我需要在类似ACACA的字符串中找到类似“ ACA”的子字符串的数量。我尝试了count(str)方法,但它只给了我1个而不是2个。如何在这些字符串上找到python中的实际出现次数?

1 个答案:

答案 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

此例程的循环计数与字符串中子字符串出现的次数相同。您可以使用更简单的例程来检查字符串的每个位置,以查看子字符串是否在该位置,但是这样会导致更多的循环,并且速度会更慢。