s = "ANANAS"
print(s.count("ANA"))
print(s.count("AN"))
print(s.count("A"))
“ ANA”在“ ANANAS”中出现两次,但python打印1,而 “ AN”出现两次,python打印2。“ A”出现三次,python打印3作为输出。为什么会有这种奇怪的行为?
答案 0 :(得分:1)
直接从documentation:
str.count ( sub [,开始[,结束]] )
返回 不重叠 的数量 子字符串sub的出现范围是[start,end]。可选的 参数start和end被解释为切片符号。
“ ANANAS”中“ ANA”的两次出现是重叠的,因此s.count("ANA")
仅返回1。
答案 1 :(得分:1)
这是因为,在子字符串ANA中,如果它像“ testANAANAAN”那样只被计数两次,即两次完整出现的ANA。 同样,在您的情况下,如果它已经检查了第一个完整的子字符串,它将不再使用完整字符串中的该字符串部分,而是在其余字符串中寻找匹配的子字符串。