# Find the Index of an Element in a List in Python

This tutorial will demonstrate how to find the position or index of an element in a Python list.

## Use the List `index()` Method to Find the Index of a List in Python

Python list has a built-in method called `index()`, which accepts a single parameter representing the value to search within the existing list. The function returns the index of the first occurrence that it finds starting from index `0` regardless of how many times it occurs within the list.

For example, declare a list with a repeating value of `20` and call the function `index(20)` and print what it returns.

``````lst = [13, 4, 20, 15, 6, 20, 20]

print(lst.index(20))
``````

Output:

``````2
``````

The first occurrence of the value `20` found within the `lst` array was on index `2`, which is the result of the function call. The other elements with the same value are ignored since it already has found a match within the list.

What happens when a value does not exist within the given list, and we call `index()` passing the non-existent value? Let’s take this for example.

``````lst = [13, 4, 20, 15, 6, 20, 20]

print (lst.index(21))
``````

Output:

``````ValueError: 21 is not in list
``````

The function will throw an error if the index isn’t found within the list. In some cases, this might be unfavorable to invoke an error. To avoid this, catch the error with a `try-except` block and make it so that if the index does not exist within the list, assign it as `-1`.

``````lst = [13, 4, 20, 15, 6, 20, 20]

try:
ndx = lst.index(21)
except:
ndx = -1

print (ndx)
``````

Output:

``````-1
``````

This way, an explicit error won’t have to be invoked, and the program can continue running after the operation.

## Use `numpy.where()` to Find the Index of a List in Python

The `numpy` module has a pre-defined function called `where()` which deals with locating multiple items within a list and accepts a condition.

In this case, we will exclusively use `where()` to locate a given value’s indices. Unlike the built-in `index()` function, the `where()` function can return a list of indices where the value is located if it exists more than once within a list. This is useful if you need all the occurrences of the value instead of just the first occurrence.

The first step is to convert a Python list into a `numpy` array. To do this, call the function `np.array()`.

``````import numpy as np

lst = np.array(lst = [13, 4, 20, 15, 6, 20, 20])
``````

After initializing the `numpy` array, we only need to fill the first parameter of `where()`. Initialize the first parameter as `lst == 20` to locate the given list’s indices with the value `20`.

``````import numpy as np

lst = [13, 4, 20, 15, 6, 20, 20]

lst = np.array(lst)

result = np.where(lst == 20)

print(result)
``````

Output:

``````(array([2, 5, 6]),)
``````

Since `numpy` mainly deals with matrices, the `where()` function returns a tuple of arrays instead of just a single list. If outputting only the single list is preferred, then call the first index of the result and output it using `print()`.

``````import numpy as np

lst = [13, 4, 20, 15, 6, 20, 20]

lst = np.array(lst)

result = np.where(lst == 20)

print(result)
``````

Output:

``````[2 5 6]
``````

Note that `numpy` arrays are delimited by single whitespace instead of the normal commas.

In summary, the `index()` function is the easiest way to find the position of an element within a Python list. Although, this function only returns the index of the first occurrence of the given value.

To return multiple indices if multiple instances of the value exist, then you can opt to use the `where()` function in the `numpy` module.

Contribute
DelftStack is a collective effort contributed by software geeks like you. If you like the article and would like to contribute to DelftStack by writing paid articles, you can check the write for us page.

## Related Article - Python List

• Deduplicate a List in Python
• Flatten a List in Python