# Slice Notation in Python

Python notation: Here, we are going to learn about the slice notation in Python with syntax and examples.
Submitted by Sapna Deraje Radhakrishna, on November 06, 2019

## Python notation

The slice() functions returns a slice object. The slice() object is used to slice a given sequence (string, bytes, tuple, list or range) or any object which supports sequence protocol. Slicing is used to retrieve the subset of values. The basic slicing technique is to define a starting point.

Slice is a way to extract certain elements from data types like string and lists.

Syntax:

```    slice[stop]
slice[start:stop:step]
```

Other variations:

```    slice[start:stop]
slice[start:]
slice[:stop]
slice[:]
slice[start:stop:step]
```

Parameter(s):

• start: starting integer where the slicing of the object starts to.
• stop: integer until which the slicing takes place. The slicing stops at index stop -1.
• step: integer value which determines the increment between each index for slicing.
• Note: If a single parameter is passed, start and step is None.

Example:

```-bash-4.2\$ python3
Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux

>>> list = [1,2,3,4,5,6]
>>> print(list[3:5])
[4, 5] # here the elements from index 3 through 5 are extracted and added to list
>>> print(list[2:5:2])
[3, 5] # here the elements from index 2 through 5 with a step of 2 is extracted (every 2nd value)
>>> print(list[1:])
[2, 3, 4, 5, 6] # extract until the last index
>>> print(list[:3])
[1, 2, 3] # extract from the initial (0th ) index
>>>
```

### Printing the values of list in a reverse order

Using the negative step value, we could print the items in the list in a reverse order.

Example:

```Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux

>>> list = [1,2,3,4,5,6]
>>> print(list[-1:1:-1])
[6, 5, 4, 3]
>>> print(list[::-1])
[6, 5, 4, 3, 2, 1] # reversed order of all elements in list
>>>
```

### Slicing in string values

Slicing can also be applied on to a string variables. Consider the following examples,

Example 1: Reverse the string

```Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux

>>> test_str = "http://www.includehelp.com"
>>> print(test_str[::-1])
moc.plehedulcni.www//:ptth
>>>
```

Example 2: Get the top level domain

```Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux

>>> test_str = "http://www.includehelp.com"
>>> print(test_str[-4:])
.com
>>>
```

Example 3: Print the URL with the protocol

```Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux

>>> test_str = "http://www.includehelp.com"
>>> print(test_str[7:])
www.includehelp.com
```

Example 4: Print the URL without the protocol or top level domain

```Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux

>>> test_str = "http://www.includehelp.com"
>>> print(test_str[7:-4])
www.includehelp
>>>
```

Preparation