为什么“www”.count(“ww”)返回1而不是2?
在我的代码中:
>> s = 'abacaba' >> s.count('aba') >> 2
对于上面的代码,我得到了正确的答案,因为'aba'在strings
出现了2次。
但对于以下情况:
>> s = 'www' >> s.count('ww') >> 1
在这种情况下,我期待s.count('ww')
将返回2
。 但是它返回1
。
为什么?
阅读文档 :
返回string
s[start:end]
中子string子的次数( 非重叠 )。 开始和结束的默认值以及负值的解释与切片相同。
由于“ww”首先匹配,所以从第三个“w”开始并且不匹配“ww”。
string.count(s, sub[, start[, end]])
:返回strings [start:end]中子string子的次数(非重叠) 。 开始和结束的缺省值以及负值的解释与切片相同。
来源: https : //docs.python.org/2/library/string.html
试着想:
在这个词中:“abacaba”,你看到了多less个不重叠的 “aba”字? 我看到2.我也看到一个“C”。
在这个词中:“www”你看到多less不重叠的 “ww”字? 我看见1.我也看到一个“W”。
为了更好的解释,当你看到你正在删除实例。
对于“abacaba”你看到“aba”并将其删除。 现在有“caba”,你再看到“aba”并删除它。 现在你只得到“C”。 你看到“aba”两次。 对“www”也是一样,你看到“ww”一次并删除它。 现在你只看到“W”。 你只看过一次“ww”。
这说得通。