Hi, trying to learn recursion right now.

I'm trying to write this program where it will tell the position of the letter if found in the list. I'm trying to not use the in function or the .index() function to find the position.

I got everything except the position. Any help would be helpful.

My current code is:

``````def position(lst,pos):

if lst == []:
return False
if lst[0] == pos:
#this is where i'm stuck, don't know what to change
return True
else:
return position(lst[1:], pos)

#testing
l = ['1', 2, 3]
print position(l, '1')  #this would output 0
print position(l, '4')  #this would output False``````

For this other one, trying to make a recursive function of selection sort.
I'm trying to extract the maximum instead of the minimum and append it to a recursively sorted sublist, but I'm not sure how to do it.
Trying to do this without using a return value.

``````def selectionsort(a):

if len(a) <= 1:
return a
else:
#stuck here
selectionsort(a[:-1
.append()``````

Ty for any help.

2
Contributors
1
3
Views
8 Years
Discussion Span
Last Post by masterofpuppets

hi,
well for the first problem you need an index to increment in order to find the value you need. So I suggest trying this:

``````def position( l, target, index ):
if index == len( l ): # this means the targer element is not in the list
return False
if index < len( l ) and l[ index ] == target:
return index
else:
index += 1   # go to next element in the list
return position( l, target, index )

l = [ "1", "2", "3", "d", "9", "0" ]
print position( l, "d", 0 )  # where 0 is the starting index

# -> output
>>>
3
>>>``````

as for the selection sort - it can easily be done without recursion. I suggest you try to do it without recursion first and understand it and then use recursion :) If you have any questions about it though, post your code here and we'll try to give you some ideas :)

hope this helps :)

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.