
kirank
5,597 PointsAm i missing something with this
My exercise is returning the expected output but the check seems to be failing. Please help with what may be missing
def first_4(listA):
return listA[:4]
def first_and_last_4(listB):
return listB[:4] + listB[-4:]
def odds(listC):
return listC[1::2]
def reverse_evens(listD):
listD= listD[::-1]
return(listD[::2])
2 Answers

Steven Parker
204,860 PointsYou're close, and your function should work already half of the time, based on the size of the list.
To make sure it works in all cases, try getting the even indexed items first, and then reversing them.

kirank
5,597 PointsThanks. I did not run through all the possible cases for the size of the list.
Ed H-P
2,712 PointsEd H-P
2,712 PointsI think I know the issue you're having - is it with the last function by any chance? I made a basic error with that one the first go I had at it - my function didn't check whether the last index was odd or even, it just took that last index and iterated (backwards) from there.
My first code looked something like:
which does exactly the same thing as your
reverse_evens
function. If the list I passed in to the function contained an odd number of items, it worked fine! But if the list had an even number, I was instead returning the odd-indexed items.How do you think you could add the % modulus operand to your function, to check whether the last index is even or odd, and start at the correct index accordingly?