По какой-то причине первое значение в списке x обновляется, но больше ничего в списке не обновляется.Я запутался, так как x является глобальной переменной и обновляется только в функции замены.Программа работает, если я переопределить x между операторами печати.Я прокомментировал это, как будто это небрежное решение.
x = [1,3,2,4,2,1,1,2,2,1]
def REPLACE(new,old,x):
if str(old) not in str(x):
return x
elif x[0] == old:
x[0] = new
return x[0:1] + REPLACE(new,old,x[1:])
else:
return x[0:1] + REPLACE(new,old,x[1:])
print(REPLACE(10,1,x))
#x = [1,3,2,4,2,1,1,2,2,1]
print(REPLACE(1,3,REPLACE(1,3,x)))