Поскольку строки в python являются неизменяемыми, я попробовал этот обходной путь: сначала я разбил строку в ее символьных компонентах, поместив их в список. Затем я продолжил цикл внутри этого списка и подставил второе вхождение символа, который я хотел изменить, в целевой символ. Последней частью, конечно, было воссоздание строки из полученного таким образом нового списка.
def modify():
space = " "
# This is the input part
varstr = input("Insert a string to modify:\n> ")
if space in varstr:
print("Please insert a string without space")
modify()
varchar = input("Insert a SINGLE character to modify in $:\n> ")
if len(varstr) > 1:
print("Please insert a single character, without spaces")
counter = 0
liststr = []
stringout = ""
#Creating the list composed by the characters of the string
for i in varstr:
liststr.append(i)
#Looping through the string and substituting the character from its second occurence
for j in range(len(liststr)):
if counter >= 1 and liststr[j] == varchar:
liststr[j] = "$"
elif counter == 0 and liststr[j] == varchar:
counter += 1
for k in liststr:
stringout += k
return stringout
Мой вопрос: можно ли сделать этот код немного более аккуратным?
Редактировать: Пример ввода может быть «Google» и символ «o». Пример вывода будет тогда
Go$gle