Подсчитайте каждое вхождение алфавита и сохраните его в списке в Python 3

#python

#python

Вопрос:

Предположим, у меня есть строка s

 s = "ebber"   
  

Мне нужен список x, где x = [1,1,2,2,1]
Мы видим первое вхождение e, поэтому наш первый элемент в списке x равен 1, затем мы видим первое вхождение b, поэтому наш следующий элемент в нашем списке равен 1, затем мы видим второе вхождение b, поэтому наш следующий элемент в списке равен 2, и так далее…..

Как мне реализовать код, чтобы получить этот результат в python?

Комментарии:

1. Вы уже пытались это закодировать? Можете ли вы показать свою попытку и объяснить, с какими трудностями вы сталкиваетесь?

2. Должен быть простой способ перебора вашей строки и построения dict, где каждый ключ является буквой, а значения хранят количество вхождений данной буквы. Итак, попробуйте сначала это.

Ответ №1:

 from collections import defaultdict

def count(s):
    d, ls = defaultdict(int), []
    for e in s:
        d[e]  = 1 # increment counter of char
        ls.append(d[e]) # add counter
    return ls

count("ebber") # [1, 1, 2, 2, 1]