Understanding slice notation Python | Use an example

It’s pretty simple to understand slice notation in Python. The basic slicing technique is to define the starting point, the stopping point, and the step size.

The slicing operator [] is actually being used in the above code with a slice() object using the : notation (which is only valid within []), i.e.:

slice(start, end, step) 

Understanding slice notation Python

a[start:stop]  # items start through stop-1
a[start:]      # items start through the rest of the array
a[:stop]       # items from the beginning through stop-1
a[:]           # a copy of the whole array

There is also the step value, which can be used with any of the above:

a[start:stop:step] # start through not past stop, by step

The important point is that the :stop the value represents the value from is not in the selected slice. So, the difference between stop and start is the number of elements selected (if step is 1, the default).

The other thing to know is that start or stop may be a negative number, which means it counts from the end of the array instead of the beginning. So:

a[-1]    # last item in the array
a[-2:]   # last two items in the array
a[:-2]   # everything except the last two items

Similarly, step can be a negative number:

a[::-1]    # all items in the array, reversed
a[1::-1]   # the first two items, reversed
a[:-3:-1]  # the last two items, reversed
a[-3::-1]  # everything except the last two items, reversed

Source: stackoverflow.com

How do I use the slice notation in Python?

Here is an example code using slice notations.

a = ("a", "b", "c", "d", "e", "f", "g", "h")

print(a[0:2])
print(a[5:])
print(a[:5])
print(a[:])

Output:

slice notation Python

Get n first elements of a list

With Slice notation, you can skip any element of the full syntax. If we skip the start the number then it starts from 0 index:

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[:5])

Output: [10, 20, 30, 40, 50]

Get n last elements of a list

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[-3:])

Output: [70, 80, 90]

Do comment if you have any doubts and suggestions on this Python slice code.

Note: IDE: PyCharm 2021.1.3 (Community Edition)

Windows 10

Python 3.7

All Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.