Python List index() Method

Searches the list for a given item


The index() method searches for the first occurrence of the given item and returns its index.

The optional arguments start and end limit the search to a particular subsequence of the list.

If specified item is not found, it raises ‘ValueError’ exception.



Python list index() method parameters
itemRequiredAny item (of type string, list, set, etc.) you want to search for
startOptionalAn index specifying where to start the search.
Default is 0.
endOptionalAn index specifying where to stop the search.
Default is the end of the list.

Basic Example

Example: Find the index of ‘green’ in a list

L = ['red', 'green', 'blue', 'yellow']
print(L.index('green'))    # 1

index() on Duplicate Items

If the list has many instances of the specified item, the index() method returns the index of first instance only.

Example: Find first occurrence of character ‘c’

L = ['a','b','c','d','e','f','a','b','c','d','e','f']
print(L.index('c'))		# 2

Limit index() Search to Subsequence

If you want to search the list from the middle, specify the start parameter.

Example: Find ‘c’ starting a position 5

L = ['a','b','c','d','e','f','a','b','c','d','e','f']
print(L.index('c',5))		# 8

The returned index is computed relative to the beginning of the full sequence rather than the start argument.

You can also specify where to stop the search with end parameter.

Example: Find ‘c’ in between 5 & 10

L = ['a','b','c','d','e','f','a','b','c','d','e','f']
print(L.index('c',5,10))	# 8

index() on Item that Doesn’t Exist

index() method raises a ‘ValueError’ if specified item is not found in the list.

Example: index() raises ValueError if no item found

#ValueError: 'x' is not in list
L = ['a','b','c','d','e','f','a','b','c','d','e','f']

also within search bound

#ValueError: 'c' is not in list
L = ['a','b','c','d','e','f','a','b','c','d','e','f']

To avoid such exception, you can check if item exists in a list, using in operator inside if statement.

Example: Checking if item ‘x’ exists before using index()

L = ['a','b','c','d','e','f','a','b','c','d','e','f']
if 'x' in L: