'ababa'中有两次出现'aba'(第0指数和第2指数):
myString = 'ababa'
print(myString.count('aba'))
然而,此代码输出的值为:1
我知道这个问题看起来很简单,但这里的答案不应该是2吗?
如果没有,那么计数功能是不是真的没有做它应该做的事情?
有一个简单的替代方案吗?
答案 0 :(得分:7)
来自Python string function documentation
返回[start,end]范围内substring sub的非重叠事件的数量。可选参数start和end被解释为切片表示法。
count
不计算重叠事件。
如果要计算重叠事件,可以使用前瞻断言使用正则表达式:
import re
print(len(re.findall('(?=aba)', 'ababa')))
答案 1 :(得分:2)
救援文件:https://docs.python.org/2/library/string.html
返回字符串s [start:end]中substring sub出现的次数(非重叠)。开始和结束的默认值以及负值的解释与切片相同。