Python中的连续子串

2024-10-05 14:26:23 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 方法字符串count次数计数stracaacaca
1条回答
网友
1楼 · 发布于 2024-10-05 14:26:23

countmethod of strings的文档说明:

Return the number of non-overlapping occurrences of substring sub in the range [start, end].

您的子字符串重叠了,这就是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

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

相关问题 更多 >