计算字符串中子字符串的所有非重叠出现次数[重复]
Posted
技术标签:
【中文标题】计算字符串中子字符串的所有非重叠出现次数[重复]【英文标题】:Count All Non-Overlapping Occurences of a Substring in a String [duplicate] 【发布时间】:2020-06-02 11:27:23 【问题描述】:我想编写一个函数来计算字符串中子字符串的所有非重叠出现。这是我目前所拥有的:
def count(substr,theStr):
count = 0
for i in range(len(theStr)):
if theStr[i:i+len(substr)] == substr:
count = count + 1
return count
如您所见,我的函数只计算字符串的出现次数,而不是 非重叠 出现次数。例如,输入“ana”和“Banana”将产生 2,即使“Banana”中只有一个“ana”的非重叠实例。如何扩展我的功能以使其正常工作?
【问题讨论】:
这能回答你的问题吗? Count the number occurrences of a character in a string @Moritz,修复了代码中的错误。更新了我的答案。请检查我的答案 @Hippolippo - 不,正如我在问题中所说,我想修改我提供的功能。我不想使用其他内置方法或函数。 【参考方案1】:Python 有一个内置函数:
theStr.count(substr)
PS: 也许你想看看Python Style-Guide
【讨论】:
我一定会去看看的。我的代码的哪一部分让您认为我应该查看样式指南? @Moritz Wolff 在代码中命名参数和变量的方式。而不是substr
它将是sub_str
或theStr
将是the_str
...可能想看一下正如编辑历史显示的那样,您倾向于使用tab
而不是多个空格...这可能导致格式错误
感谢您的提示 - 但回到原来的帖子,我试图不使用内置函数或方法,而是扩展我已经构建的函数。以上是关于计算字符串中子字符串的所有非重叠出现次数[重复]的主要内容,如果未能解决你的问题,请参考以下文章