Get only the even index elements of a Python List

avatar

Borislav Hadzhiev

Last updated: Aug 17, 2022

banner

Photo from Unsplash

Get only the even index elements of a Python List #

Use list slicing to get only the even index elements of a list, e.g. even = my_list[::2]. The new list will consist of the elements with an even index of the original list.

main.py
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # ✅ get all elements with even index in the list even = my_list[::2] print(even) # 👉️ [0, 2, 4, 6, 8, 10] # --------------------------------------------- # ✅ get all elements with odd index in the list odd = my_list[1::2] print(odd) # 👉️ [1, 3, 5, 7, 9] # --------------------------------------------- # ✅ get every second element of the list (starting at second element) n = 2 every_second = my_list[n - 1::n] print(every_second) # 👉️ [1, 3, 5, 7, 9] # --------------------------------------------- # ✅ get every second element of the list (starting at index 2) every_second = my_list[2::2] print(every_second) # 👉️ [2, 4, 6, 8, 10]

We used list slicing to get only the even index elements of a list.

The syntax for list slicing is my_list[start:stop:step].

The start index is inclusive and the stop index is exclusive (up to, but not including).

Python indexes are zero-based, so the first item in a list has an index of 0, and the last item has an index of -1 or len(my_list) - 1.

The slice my_list[::2] gets the even index elements of the original list.

main.py
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even = my_list[::2] print(even) # 👉️ [0, 2, 4, 6, 8, 10]

The start and end indexes are omitted, so the slice starts at index 0 and goes to the end of the list.

The step value is set to 2, so the slice selects every second element, starting at index 0.

You can use the same approach to get only the elements with an odd index of a list.

main.py
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # ✅ get all elements with odd index in the list odd = my_list[1::2] print(odd) # 👉️ [1, 3, 5, 7, 9]

Instead of starting at index 0, the slice starts at index 1 and selects every second element.

The stop index is omitted, so the slice selects the odd elements of the entire list.

If you need to get every Nth element of a list, specify a value for the start index.

main.py
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # ✅ get every second element of the list (starting at second element) n = 2 every_second = my_list[n - 1::n] print(every_second) # 👉️ [1, 3, 5, 7, 9]

The example selects every second element of the list starting at the second element.

If you need to get the elements with an even index of a list, starting at a specific index, set the value for the start index.

main.py
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] every_second = my_list[2::2] print(every_second) # 👉️ [2, 4, 6, 8, 10]

The new list consists of the even elements of the original list starting at index 2 (the third element).

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.