1

我有一个字符串

string = 'AAA'

使用时string.count('A')输出等于3,如果是string.count('AA')输出等于1

但是,字符串中有 2 个 'AA'。

有没有什么方法可以通过使用字典函数来计算像上面这样的重复字符串?

我想听听你有用的建议。

谢谢大家。

4

3 回答 3

1

问题是 Count 返回字符串中子字符串 sub 的(非重叠)出现次数。

试试这个,你可以在这篇文章中看到:

def occurrences(string, sub):
    count = start = 0
    while True:
        start = string.find(sub, start) + 1
        if start > 0:
            count+=1
        else:
            return count
于 2013-10-11T07:37:07.090 回答
1

“不是很大”字符串的替代品

>>> s, sub = 'AAA', 'AA'
>>> sum(s[x:].startswith(sub) for x in range(len(s)))
2

我觉得这更具可读性。

于 2013-10-11T07:49:24.387 回答
-1

是的!你可以用字典

def count(input):

    a = {}

    for i in input:
        a[i] = a.get(i,0)+ 1
    return a

print(count('AA')) #Would return 2
于 2016-04-17T07:11:14.107 回答