замена элемента строки без использования replace
Скажите пожалуйста, что я делаю не так. не идет замена. Спасибо за помощь*
def my_string_replace(args):
a = input('букву: ')
b = input('замену: ')
args = list(args)
args = ' '.join(args)
for i in args:
if a == i:
a = b
return args
print(my_string_replace('Hello world'))
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Например, так:
def my_string_replace(args):
a = input('букву: ')
b = input('замену: ')
ret = [b if i == a else i for i in args]
return ''.join(ret)
print(my_string_replace('Hello world'))
Или так, если уж хотите через списки:
def my_string_replace(args):
a = input('букву: ')
b = input('замену: ')
args = list(args)
for i,x in enumerate(args):
if x == a:
args[i] = b
return ''.join(args)
print(my_string_replace('Hello world'))
А у вас что-то не очень осмысленное в коде происходит. Например, тут вы просто вставили между буквами пробелы. Зачем??
args = list(args)
args = ' '.join(args)
А тут вы поменяли a на b, но args при этом ведь никак не меняется. И строку нельзя менять всё-равно, а у вас args уже опять строка тут, а не список.
for i in args:
if a == i:
a = b