计算特定字符串在给定单词中出现的次数

cod*_*123 2 python

如何编写打印特定字符串出现在给定单词中的次数的程序.例如:如果我在单词'asdadgfrdad'中查找字符串'dad',则输出应为2.

def numStrings(a):
    strings = 'dad'
    result = 0
    for char in a:
        if char in strings:
            result = result + 1
    print result

numStrings("asdadgfrdad")
Run Code Online (Sandbox Code Playgroud)

但这给了我字母d,a出现在给定单词中的次数.怎么纠正这个?

Jay*_*iya 6

简单而简单的pythonic方式就是这样

'asdadgfrdad'.count('dad')
Run Code Online (Sandbox Code Playgroud)

但是,当您查看类似于'dadad'.count('dad')返回1而不是2的内容时,您的答案可能会或可能不是您所期望的.这是因为str.count返回子字符串的非重叠出现次数.另一方面,如果要查找重叠子串的数量,则必须使用以下代码:

haystack = 'dadad'
needle = 'dad'
sum(haystack[i:i+len(needle)] == needle for i in range(len(haystack)))
Run Code Online (Sandbox Code Playgroud)