#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]