Замещение любой буквы в тексте

Задача по информатике на python: пользователь должен написать предложение, например, "как дела?", и код должен заменить одинаковые букву на цифры, например: "1а2 дела?"

text = input('Введите предложение:')
word = input('Введите любую букву:')
s  = 0
for i in text:
    if i in word:
        s = s + 1
new = text.replace(word, s)
print(new)

Ответы (2 шт):

Автор решения: Dmitry

Простейший вариант

a = "Как дела"
b = "к"

a_ = list(a.lower())
count = 1
for index, letter in enumerate(a_):
    if letter == b:
        a_[index] = str(count)
        count += 1

result = ''.join(a_)

replace работать в вашем случае не будет. Поскольку он заменяет все вхождения подстроки в строку.

Строку преобразовываю в список по той причине, что строка не изменяемый тип данных и переписывать ее в цикле не получится. Список изменяемый тип, следовательно, мне нужно знать индексы где стоят буквы, которые необходимо заменить и делаю это

Или еще наглядней, но не лучший вариант для использования (субъективно)

count = 1
result = ""
for letter in a:
    if letter == b:
        result += str(count)
        count += 1
    else:
        result += letter
→ Ссылка
Автор решения: strawdog

Можно сделать так:

word = "как дела, крокодил?"
letter = "к"
rng = iter(range(1, word.count(letter)+1))
res = ''.join([str(next(rng)) if x==letter else x for x in word])

res:

1а2 дела, 3ро4одил?
→ Ссылка