Skip to content
Home / Fundamentals

How do I get the index of an element in a list

TL;DR

use index() to find the index in your list

Context

The index() method returns the index of the searched element in your list.

# Find the index of the value 4 in my_list
>>> my_list = [1,2,3,4]
>>> print(my_list.index(4))

3

index() is of linear time complexity which means that it needs to iterate over all list items until a match is found. In the worst case scenario, it needs to go through all the items before finding a match. This might appear insignificant for our example but adding one more for-loop can easily change your code to exponential time complexity.

The linear time complexity nature also means that you achieve the same outcome by looping through the list yourself

def search_index(values_list: List[int], searched_value: int) -> int:
    for index, value in enumerate(my_list):
        if value == search_value:
            return index
    raise ValueError("Searched value was not in the list")

>>> my_list = [1,2,3,4]
>>> print(search_index(my_list, 4))
3

index() raises a ValueError exception if the searched item is not inside your list. In addition, it also needs to still check all items before arriving to this conclusion

>>> my_list = [1,2,3,4]
>>> searched_value = 5
>>> print(my_list.index(5))
ValueError

index() is restricted to only return the first match. This means that it will simply ignore indices of other potential items. If you want to find all indices then you could implement something as follows

def search_indices(values_list: List[int], searched_value: int) -> None:
    for index, value in enumerate(my_list):
        if value == search_value:
            print(index)
    raise ValueError("Searched value was not in the list")

>>> my_list = [1,2,3,4,4]
>>> search_indices(my_list, 4)
3
4