【问题标题】:Python string count not working properly? [duplicate]Python字符串计数无法正常工作? [复制]
【发布时间】:2016-10-25 03:36:35
【问题描述】:

“ababa”中有两次出现“aba”(第 0 个索引和第 2 个索引):

myString = 'ababa'
print(myString.count('aba'))

然而这段代码输出的值是:1
我知道这个问题看起来很简单,但这里的答案不应该是 2 吗?
如果不是,那么 count 函数不是真的没有做它应该做的事情吗?

有没有简单的替代方法?

【问题讨论】:

  • 正确。 ababa - aba = baba 不是 aba。所以这就是1。
  • 如果你做了"a".count("a"),你会期望无穷大吗?为什么不呢?

标签: python string function count


【解决方案1】:

救援文档:https://docs.python.org/2/library/string.html

返回字符串 s[start:end] 中子字符串 sub 的(非重叠)出现次数。开始和结束的默认值以及负值的解释与切片相同。

【讨论】:

    【解决方案2】:

    来自Python string function documentation

    返回 [start, end] 范围内子字符串 sub 的非重叠出现的数量。可选参数 start 和 end 被解释为切片符号。

    count 不计算重叠出现次数。

    如果您想计算重叠的出现次数,您可以使用带有前瞻断言的正则表达式:

    import re
    print(len(re.findall('(?=aba)', 'ababa')))
    

    【讨论】:

      猜你喜欢
      • 2016-08-12
      • 2023-03-28
      • 1970-01-01
      • 2017-01-22
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 2017-02-18
      相关资源
      最近更新 更多