Замещение любой буквы в тексте
Задача по информатике на 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одил?