私は文字列を持っています
string = 'AAA'
を使用する場合string.count('A')
、出力は 3 に等しく、それを使用する場合string.count('AA')
、出力は 1 に等しくなります。
ただし、文字列には 2 つの 'AA' があります。
辞書機能を使って、上記のように繰り返し文字列をカウントする方法はありますか?
あなたの有益な提案を聞きたいです。
よろしくお願いします。
私は文字列を持っています
string = 'AAA'
を使用する場合string.count('A')
、出力は 3 に等しく、それを使用する場合string.count('AA')
、出力は 1 に等しくなります。
ただし、文字列には 2 つの 'AA' があります。
辞書機能を使って、上記のように繰り返し文字列をカウントする方法はありますか?
あなたの有益な提案を聞きたいです。
よろしくお願いします。
「大きくない」文字列の代替
>>> s, sub = 'AAA', 'AA'
>>> sum(s[x:].startswith(sub) for x in range(len(s)))
2
これはもう少し読みやすいと思います。
問題は、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
うん!辞書が使えます
def count(input):
a = {}
for i in input:
a[i] = a.get(i,0)+ 1
return a
print(count('AA')) #Would return 2