繁体   English   中英

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

[英]Count the number of times a particular string appears in a given word

如何编写一个程序来打印特定字符串在给定单词中出现的次数。 例如:如果我在单词 '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 在给定单词中出现的次数。 如何纠正这个?

做这件事的简短而简单的pythonic方法是

'asdadgfrdad'.count('dad')

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM