I want to write a recursive function that reverses a list. Given an input: [1,2,3], the function should return [3,2,1]
I am however recieving this error message.
CodePudding user response:
Try like this :
def reverse(lst,start,end):
if start>=end:
return lst
else:
temp=lst[start]
lst[start]=lst[end]
lst[end]=temp
return reverse(lst,start 1,end-1)
l = [1,2,3]
print(reverse(l,0,len(l)-1))
Output:
[3, 2, 1]
CodePudding user response:
No need for any recursive programming:
list_in = [1, 2, 3]
list_out = list_in[::-1]
CodePudding user response:
newList.append(temp) doesn't have a return value, and therefore returns None. newList.append(temp) adds temp to newList, so your code could work as:
def recursiveReverse(dataList):
if len(dataList) == 1:
return dataList
else:
temp = dataList.pop(0)
newList = recursiveReverse(dataList)
newList.append(temp)
return newList
CodePudding user response:
From what I can see in the error message it is throwing an error is you are trying to append something to none type as in the line return yourlist.append(element).
Try appending to the list first and then return it.
Like
mylist.append(element)
return mylist
