【问题标题】:Count in python [duplicate]在 python 中计数 [重复]
【发布时间】:2022-11-21 02:49:17
【问题描述】:

我正在尝试计算此字符串 "AA" 在此 string 中的出现次数: FAATAGAAATA

我期待得到 3 occurrences 但我只得到 2。

喜欢F-AA-G-AAAA-A。不知何故,我猜 python 拒绝了第二次出现的最后一个 A

print(seq.count("AA"))

【问题讨论】:

  • count非重叠子字符串的出现。使用正则表达式,len(re.findall(r'((?=AA))', s))(打印 3)
  • 请阅读How to Ask,了解如何写出好的标题。

标签: python


【解决方案1】:
def count_occurrences(string, sub_string):
    return sum(bool(string[i:].startswith(sub_string)) for i in range(len(string)))

【讨论】:

    【解决方案2】:

    count返回的数量非重叠子字符串的出现.

    seq = "FAATAGAAATA"
    sub_seq = "AA"
    print(seq.count(sub_seq))  # 2
    

    你想要的是计算重叠的次数:

    def count_with_overlapping(string, item):
        count = 0
        for i in range(0, len(string)):
            if item in string[i:len(item)+i]:
                count += 1
        return count
    seq = "FAATAGAAATA"
    sub_seq = "AA"
    print(count_with_overlapping(seq, sub_seq))  # 3
    

    【讨论】:

      【解决方案3】:

      它计算“AA”的数量,因此不能将其分开。而不是你可以这样做:

      seq = "FAATAGAAATA"
      
      print(int(seq.count("A")/2))
      

      【讨论】:

        猜你喜欢
        • 2019-06-28
        • 1970-01-01
        • 2018-04-13
        • 2016-05-17
        • 2010-09-16
        • 1970-01-01
        • 1970-01-01
        • 2015-02-08
        • 1970-01-01
        相关资源
        最近更新 更多