Skip to content Skip to sidebar Skip to footer

Why Does Extended Slicing Not Reverse The List?

I'm slicing lists in python and can't explain some results. Both of the following seem natural to me: >>>[0,1,2,3,4,5][1:4:1] [1, 2, 3] >>>[0,1,2,3,4,5] [::-1]

Solution 1:

The third number in the slice is the step count. So, in [0,1,2,3,4,5][1:4:-1], the slicing starts at 1 and goes DOWN by 1 until it is less than 4, which is immediately is. Try doing this:

>>> [0,1,2,3,4,5][4:1:-1][4, 3, 2]

Solution 2:

If you are slicing this then slicing will look like this [start:end:step]. For this one:

>>> [0,1,2,3,4,5][1:4:1][1, 2, 3]

It is staring from index 1 to index 3 because it exlcudes the index 4 with 1 step at a time. You are getting an empty list in the second one because you are stepping -1 from 1st index. So this will be the solution.

>>> [0,1,2,3,4,5][4:1:-1][4, 3, 2]

This works because you are taking an index from 4 to one with -1 step forward.

Post a Comment for "Why Does Extended Slicing Not Reverse The List?"