[Tutor] Negative step in Python slicing
Sahilpreet Singh
s9814246136 at gmail.com
Sat Nov 13 09:06:58 EST 2021
Thanks for your help.This community is best.
On Sat, Nov 13, 2021, 16:40 Alan Gauld <learn2program at gmail.com> wrote:
> Always use Reply-All or Rely-List when responding to tutor emails.
>
> On 13/11/2021 01:13, Sahilpreet Singh wrote:
> > Thanks Alan
> > But can you explain some cases where step is like -2 or -3.
>
> It is exactly like -1 except it steps by the number shown.
> In the same way as 2 or 3 step forward.
>
> The easiest way is to try it in the interpreter:
>
> >>> s = [1,2,3,4,5,6,7,8,9]
> >>> s[::-2] #every second item in reverse...
> [9, 7, 5, 3, 1]
> >>> s[::-3] #every third item in reverse...
> [9, 6, 3]
> >>>
>
> As I said...
>
>
> > Slicing consists of 3 values:
> >
> > mylist[start:end:step]
> >
> > where
> > start defines the first position,
> > end the last position and
> > step the number of intermediate entries
> >
> > ...
> >
>
> > Each of these parameters has a default value:
> > start = 0, end = len(mylist), step = 1
> >
> >
> ...
>
>
> > The step value states how many elements in the original
> > sequence must be stepped over for each element in the
> > slice. Thus 2 returns every second element, 3 every third etc.
> >
> > We can also use negative value to indicate direction
> > of traversal. Thus -1 indicates an index of the last element,
> > or a reverse direction of step
> >
> > Thus mylist[::-1]
> >
> > returns a reversed list
> >
> > >>> s[:]
> > [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
> >
> > Start at 3 and get every second item
> > >>> s[3::2]
> > [3, 5, 7, 9]
> >
> > Reverse the list
> > >>> s[::-1]
> > [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
> >
> > --
> >
> Alan G
> Author of the Learn to Program web site
> http://www.alan-g.me.uk/
> http://www.amazon.com/author/alan_gauld
> Follow my photo-blog on Flickr at:
> http://www.flickr.com/photos/alangauldphotos
>
>
More information about the Tutor
mailing list