在我的代码中:
>> s = 'abacaba'
>> s.count('aba')
>> 2
对于上面的代码,我得到了正确的答案,因为'aba'在字符串s
中出现了2次。
但是对于以下情况:
>> s = 'www'
>> s.count('ww')
>> 1
在这种情况下,我希望s.count('ww')
将返回2
。但它返回1
。
为什么?
答案 0 :(得分:165)
阅读docs:
返回字符串
s[start:end]
中substring sub的(非重叠)次数。开始和结束的默认值以及负值的解释与切片相同。
因为" ww"首先匹配,它来自第三个" w"并且没有匹配" ww"。
答案 1 :(得分:34)
string.count(s, sub[, start[, end]])
:返回字符串s [start:end]中substring sub的(非重叠)次数。开始和结束的默认值以及负值的解释与切片相同。
答案 2 :(得分:9)
试着想一想:
在这个词中:“abacaba”,你看到多少不重叠“aba”字样?我看到2.而且我也看到了“c”。
在这个词中:“www”你看到多少不重叠“ww”字样?我看到1.而且我也看到了“w”。
为了更好的解释,请在您看到时认为您正在删除该实例。
对于“abacaba”,您会看到“aba”并将其删除。现在有“caba”,你再次看到“aba”并将其删除。现在你只得到“c”。你看两次“aba”。对于“www”也是一样,你看一次“ww”并删除它。现在你只看到“w”。你曾经见过“ww”一次。
这很有道理。