我对一个非常简单的字符串计数操作感到困惑:s = 'BANANA's.count('ANA')这应该导致2,对吧?由于子字符串,ANA在 中出现 2 次BANANA。但结果我得到了 1。>>> s = 'BANANA'>>> s.count('ANA')1不知道为什么错误的结果。就是这么简单的操作!感谢任何帮助。PS:我该如何解决这个问题?
4 回答
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
string.count()不计算重叠事件。
如果你想计算重叠的次数,一个简单的字符串循环将计算它:
s = 'BANANA'
i = 0
cnt = 0
while True:
i = s.find('ANA', i)
if i >= 0:
i += 1
cnt += 1
else:
break
或者,您也可以regex在下面的@Henrique 回答中使用。
神不在的星期二
TA贡献1963条经验 获得超6个赞
regex使用新库解决了问题。它有一个overlapped非常有用的新参数。
>>>import regex as re
>>>len(re.findall("ANA", "BANANA", overlapped=True))
2
我在 SO 中找到了这个问题的解决方案。
添加回答
举报
0/150
提交
取消