【问题标题】: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”的非重叠实例。如何扩展我的功能以使其正常工作?

【问题讨论】:

  • @Moritz,修复了代码中的错误。更新了我的答案。请检查我的答案
  • @Hippolippo - 不,正如我在问题中所说,我想修改我提供的功能。我不想使用其他内置方法或函数。

标签: python


【解决方案1】:

Python 有一个内置函数:

theStr.count(substr)

PS: 也许你想看看Python Style-Guide

【讨论】:

  • 我一定会去看看的。我的代码的哪一部分让您认为我应该查看样式指南?
  • @Moritz Wolff 在代码中命名参数和变量的方式。而不是substr 它将是sub_strtheStr 将是the_str...可能想看一下正如编辑历史显示的那样,您倾向于使用tab 而不是多个空格...这可能导致格式错误
  • 感谢您的提示 - 但回到原来的帖子,我试图不使用内置函数或方法,而是扩展我已经构建的函数。
猜你喜欢
  • 1970-01-01
  • 2021-01-11
  • 1970-01-01
  • 2014-11-01
  • 2011-03-02
  • 2012-05-31
  • 2021-08-04
相关资源
最近更新 更多