Python字符串计数无法正常工作?

时间:2016-06-23 01:28:37

标签: python string function count

'ababa'中有两次出现'aba'(第0指数和第2指数):

myString = 'ababa'
print(myString.count('aba'))

然而,此代码输出的值为:1
我知道这个问题看起来很简单,但这里的答案不应该是2吗? 如果没有,那么计数功能是不是真的没有做它应该做的事情?

有一个简单的替代方案吗?

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出现的次数(非重叠)。开始和结束的默认值以及负值的解释与切片相同。