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