Home//

Python List [-1], [:n], [-n:], [::-1] Explained

Python List [-1], [:n], [-n:], [::-1] Explained

Minh Vu

By Minh Vu

Updated Nov 01, 2023

You may see some code in Python like list[-1], list[:n], list[-n:], or list[::-1]. What do they mean? In this article, we will learn more about this technique which is called list slicing.

In simple words, the meaning of those expressions is:

  • list[-1]: get the last element of the list
  • list[:n]: get the first n elements of the list
  • list[-n:]: get the last n elements of the list
  • list[::-1]: reverse the list

Keep reading to understand more how list slicing works.

What is List Slicing?

In Python, list slicing is a technique to get a subset of a list using indices. The syntax is list[start:end:step] where:

  • start: the index of the first element in the subset (inclusive), default to 0
  • end: the index of the last element in the subset (exclusive), default to len(list)
  • step: the step size to get elements in the subset, default to 1

For example, numbers[1:10:3] means to get all numbers from index 1 to 10 with a step size of 3.

Let's make that example more clear.

list-slicing.py
numbers = [2, 1, 0, 3, 5, 6, 8, 9, 7, 4] print(numbers[1:10:3]) # Output: [1, 5, 9]

We have a list numbers with 10 elements. So numbers[1:10:3] are elements at 1, 4, and 7 indices, which are 1, 5, and 9, respectively.

What Does list[-1] Mean?

list[-1] means to get the last element of the list. It is equivalent to list[len(list) - 1].

list-slicing.py
numbers = [2, 1, 0, 3, 5, 6, 8, 9, 7, 4] print(numbers[-1]) # Output: 4

What Does list[:n] Mean?

list[:n] means to get the first n elements of the list. It is equivalent to list[0:n].

If n is greater than the length of the list, it will return all elements of the list.

list-slicing.py
numbers = [2, 1, 0, 3, 5, 6, 8, 9, 7, 4] print(numbers[:3]) # Output: [2, 1, 0] print(numbers[:0]) # Output: [] print(numbers[:100]) # Output: [2, 1, 0, 3, 5, 6, 8, 9, 7, 4]

What Does list[-n:] Mean?

list[-n:] means to get the last n elements of the list. It is equivalent to list[len(list) - n:].

list-slicing.py
numbers = [2, 1, 0, 3, 5, 6, 8, 9, 7, 4] print(numbers[-3:]) # Output: [9, 7, 4] print(numbers[-5:]) # Output: [6, 8, 9, 7, 4]

What Does list[::-1] Mean?

list[::-1] means to reverse the list. It is equivalent to list[len(list) - 1:0:-1].

Let's break it down:

  • len(list) - 1: the index of the last element of the list
  • 0: the index of the first element of the list
  • -1: the step size to get elements in the subset

So, in word, it means to go backward from the last element to the first element with a step size of 1.

list-slicing.py
numbers = [2, 1, 0, 3, 5, 6, 8, 9, 7, 4] print(numbers[::-1]) # Output: [4, 7, 9, 8, 6, 5, 3, 0, 1, 2]
You can search for other posts at home page.
Minh Vu

Minh Vu

Software Engineer

Hi guys, I'm the author of WiseCode Blog. I mainly work with the Elastic Stack and build AI & Python projects. I also love writing technical articles, hope you guys have good experience reading my blog!