1

私は文字列を持っています

string = 'AAA'

を使用する場合string.count('A')、出力は 3 に等しく、それを使用する場合string.count('AA')、出力は 1 に等しくなります。

ただし、文字列には 2 つの 'AA' があります。

辞書機能を使って、上記のように繰り返し文字列をカウントする方法はありますか?

あなたの有益な提案を聞きたいです。

よろしくお願いします。

4

3 に答える 3

1

「大きくない」文字列の代替

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

これはもう少し読みやすいと思います。

于 2013-10-11T07:49:24.387 に答える
1

問題は、Count が string 内の部分文字列 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

うん!辞書が使えます

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 に答える