为什么“www”.count(“ww”)返回1而不是2?

时间:2016-04-07 06:18:31

标签: python string count

在我的代码中:

>> s = 'abacaba'
>> s.count('aba')
>> 2

对于上面的代码,我得到了正确的答案,因为'aba'在字符串s中出现了2次。

但是对于以下情况:

>> s = 'www'
>> s.count('ww')
>> 1

在这种情况下,我希望s.count('ww')将返回2。但它返回1

为什么?

3 个答案:

答案 0 :(得分:165)

阅读docs

  

返回字符串s[start:end]中substring sub的(非重叠)次数。开始和结束的默认值以及负值的解释与切片相同。

因为" ww"首先匹配,它来自第三个" w"并且没有匹配" ww"。

答案 1 :(得分:34)

  

string.count(s, sub[, start[, end]])

     

返回字符串s [start:end]中substring sub的(非重叠)次数。开始和结束的默认值以及负值的解释与切片相同。

来源:https://docs.python.org/2/library/string.html

答案 2 :(得分:9)

试着想一想:

在这个词中:“abacaba”,你看到多少不重叠“aba”字样?我看到2.而且我也看到了“c”。

在这个词中:“www”你看到多少不重叠“ww”字样?我看到1.而且我也看到了“w”。

为了更好的解释,请在您看到时认为您正在删除该实例。

对于“abacaba”,您会看到“aba”并将其删除。现在有“caba”,你再次看到“aba”并将其删除。现在你只得到“c”。你看两次“aba”。对于“www”也是一样,你看一次“ww”并删除它。现在你只看到“w”。你曾经见过“ww”一次。

这很有道理。