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

时间:2015-06-21 19:37:42

标签: 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")

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

1 个答案:

答案 0 :(得分:6)

简短而简单的pythonic方法就是

'asdadgfrdad'.count('dad')

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

haystack = 'dadad'
needle = 'dad'
sum(haystack[i:i+len(needle)] == needle for i in range(len(haystack)))