I'm taking this online Python course and they do not like the students using one-line solutions. The course will not accept brackets for this solution.
I already solved the problem using list comprehension, but the course rejected my answer.
The problem reads:
Using
indexand other list methods, write a functionreplace(list, X, Y)which replaces all occurrences ofXinlistwithY. For example, ifL = [3, 1, 4, 1, 5, 9]thenreplace(L, 1, 7)would change the contents ofLto[3, 7, 4, 7, 5, 9]. To make this exercise a challenge, you are not allowed to use[].Note: you don't need to use return.
This is what I have so far, but it breaks because of TypeError: 'int' object is not iterable.
list = [3, 1, 4, 1, 5, 9]
def replace(list, X, Y):
   while X in list:
      for i,v in range(len(list)):
         if v==1:
            list.remove(1)
            list.insert(i, 7)
replace(list, 1, 7)
This was my original answer, but it was rejected.
list = [3, 1, 4, 1, 5, 9]
def replace(list, X, Y):
   print([Y if v == X else v for v in list])
replace(list, 1, 7)
Any ideas on how to fix my longer solution?
 
     
     
     
     
     
     
    