Python list allows you to store multiple items in a single variable.
You can find the index of an item in the list in python using the list.index() method.
In this tutorial, you’ll learn the different ways to find the index of an item in the list.
If you’re in Hurry
You can use the below code snippet to find the index of an element.
list = [1,5,7,9,23,56]
list.index(5)
Where, 5
is existing in the second position in the list. Since the index is 0
based, you’ll see the output as 1
.
Output
1
If You Want to Understand Details, Read on…
In this detailed tutorial, you’ll learn the different methods available to find the index of an element in the list.
Table of Contents
Python List Index() With Examples
You can find the index of an item in the list using List.index() method.
Syntax
list.index(element, start_pos, end_pos)
Where,
element
– Required. Element to Find in the liststart_pos
– Optional. If you want to find an item starting from a specific position rather checking entire listend_pos
– Optional. If you want to find an item until a specific position .
You can use the start position and end position if you want to check if an item is available in the list within the specified range.
Exception
If the item is not available in the list, then value_error exception will be thrown.
Examples
Use the below snippet to find the index of an element 5
in the entire list.
Snippet
list = [1,5,7,9,23,56]
list.index(5)
Where, 5
is existing in the second position in the list. Since the index is 0
based, you’ll see the output as 1
.
Output
1
Now, you’ll use the start position and end position to find the index of an element in the specified range.
Use the below snippet which includes the Start position and End position along with the element to find.
Snippet
list = [1,5,7,9,23,56]
list.index(23, 3,5)
Where,
23
– Element to find.3
– Starting position in the list to find the element5
– End position in the list to find the element.
Element 23
is available in the list and its index is 4
. Hence you’ll see the below output.
Output
4
This is how you can find the index of an element in the list.
Next, you’ll learn the different methods available to find the index of an item.
Find Index Of Item Without Exception
In this section, you’ll learn how to find the index of an item without exception.
You can use this when you want to find the index of Item If Exists. Otherwise, return a default value.
The index()
method throws the ValueError
if the item doesn’t exist in the list.
Hence, you can catch the ValueError
Exception and return a default value in case of the ValueError
.
For example, you can return -1
if the value is not found.
Snippet
list = [1,5,7,9,23,56]
try:
index_value = list.index(20)
except ValueError:
index_value = -1
print(index_value)
In the example list, value 20
is not available.
Hence a ValueError
will be thrown. Then the exception will be caught and the value -1
will be set to the index_value
variable.
Output
-1
This is how you can find the index of an item in the list without exception.
Next, you’ll find an index of multiple elements.
Find Index Of Multiple Elements
In this section, you’ll learn how to find the index of multiple elements at once.
You’ll use the where() method in NumPy
package to find the index and isin() method to pass multiple items.
Snippet
import numpy as np
list = [1,5,7,9,23,56]
idx=np.where(np.isin(list, [5,7]))
idx
Where,
np.isin(list, [5,7])
– To find index of 5 and 7 inlist
object. It’ll return an array withtrue
in the place of the items being searched and false in other indices.np.where()
– will use the thebooleans
in the array to return the indexes.
In the list, 5
and 7
exists in the second and third positions respectively. Hence you’ll see an array as [1,2]
as shown below.
Output
(array([1, 2], dtype=int32),)
This is how you can find the index of multiple items.
Next, you’ll learn how to find the index of an item in a NumPy array.
Find Index of Item Using Numpy
In this section, you’ll find the index of an element in the Numpy
array.
First, you’ll create an array using np.array()
.
Then you’ll use the where()
method available in the Numpy
to find the index of an item.
Snippet
import numpy as np
list = np.array([1,5,7,9,23,56])
item_index = np.where(list == 5)
item_index
Where,
list = np.array([1,5,7,9,23,56])
– Creating aNumpy
Arraynp.where(list == 5)
– List is the source array name and5
is the item to find the index.item_index
-To print the index of the item
5
is existing in the second position in the numpy
array.
Since the index is 0 based, you’ll see the output as array([1])
as shown below.
Output
(array([1], dtype=int32),)
This is how you can find the index of an element in the numpy
array.
Next, you’ll find the index of items in the list with a specific conditions.
Find Index Of Item in List with specific condition
In this section, you’ll find the index of items in the list with the specific conditions using list comprehension.
For example, if you need to find the index of items that is greater than 10, you can use list comprehension.
The list comprehension will return a list of index of items that passes the condition.
Snippet
The following code explains how to find the index of items that is greater than 10.
list = [1,5,7,9,23,56]
output = [idx for idx, value in enumerate(list) if value > 10]
output
Where,
idx
– To return the index during each iteration if the condition is true.for idx, value in enumerate(list)
– To enumerate the list as index and valueif value > 10
– To check the value condition during each iteration
The values 23 and 56 are greater than 10 and it is available in the index 4 and 5.
Hence, you’ll see the below output.
Output
[4, 5]
This is how you can find the index of items using list comprehension based on the specific conditions.
Next, Find the index of an item in a case insensitive way.
Find Index Of Item In List Case Insensitive
In this section, you’ll learn how to find the index of an item in a list in a case-insensitive way.
You need to convert the complete list to either lower case or upper case and use the index()
method.
Snippet
In the example, you’ll convert the items in the list to lower case using the lower()
method and create a new list with the lower case items.
Then you can invoke the index()
method in the new list which has lower case items.
to_find = 'b'
list = ['A', 'B', 'C', 'D', 'E', 'F', 'g', 'h']
lower_list = [item.lower() for item in list]
lower_list.index(to_find.lower())
The lower_list will contain the items in the lower case.
B is available in the second position as b
. Since the index is 0 based, you’ll see the output 1
.
Output
1
This is how you can find an index in the list using case insensitive way.
Next, you’ll learn about regex.
Find Index Of Item In List Using Regex
In this section, you’ll learn how to find Index Of Match items in the list using regex.
Regex module provides regular expression matching operations to match a string based on the condition.
First, you need to import the regex module using the below statement.
import re
Then you can search for an item using the re.search(expression, item)
where,
Expression
– Condition to pattern matchitem
– Item which needs to be checked if its matching the expression.
To learn more about the regular expression, refer to this regex cheat sheet.
Snippet
The following code explains how to find the index of items that end with a
.
import re
countries = ['India', 'United States', 'Canada', 'Germany']
country_idx = [i for i, item in enumerate(countries) if re.search('a$', item)]
country_idx
In the sample list, there are two items India and Canada which ends with a
available in position 1
and 3
.
Since the Index is 0
based, you’ll see the below output.
Output
[0, 2]
This is how you can find the index of an element using regular expression.
Next, you’ll see about the duplicate elements.
Find Index Of Duplicate Elements
In this section, you’ll find the index of duplicate elements in the list.
You’ll use the packages numpy
and pandas
for this purpose.
First, you’ll create a dataframe with the list of values and identify the duplicate values using the duplicated() method in the dataframe.
Then, you’ll use the np.where()
to identify the index of the duplicate elements.
Snippet
import numpy as np
import pandas as pd
list = ['a', 'a', 'c', 'f', 'e', 'f', 'g', 'h']
idx = np.where(pd.DataFrame(list).duplicated())
idx
In the sample list, duplicate elements a
and f
exists in position 2
and 6
. Since the index is 0-based
, you’ll see the below output.
Output
(array([1, 5], dtype=int32),)
This is how you can find the index of duplicate elements.
Conclusion
To summarize, you’ve learned how to find the index of an item in the list.
You’ve used the index()
method to find the index and also used the packages numpy
and pandas
, where it can be helpful to find the index of an item in various scenarios without any complex code.
You’ve also learned about using the regular expressions and list comprehensions to find the index of an element in the list and find the index of all occurrences of an element in the list.
If you have any questions, comment below.