Python List index() Method

Searches the list for a given item

Usage

The index() method searches for the first occurrence of the given item and returns its index. If specified item is not found, it raises ‘ValueError’ exception.

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

Syntax

list.index(item,start,end)

Python list index() method parameters
ParameterConditionDescription
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

# Find the index of 'green' in a list
L = ['red', 'green', 'blue', 'yellow']
print(L.index('green'))
# Prints 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.

# Find first occurrence of character ‘c’
L = ['a','b','c','d','e','f','a','b','c','d','e','f']
print(L.index('c'))
# Prints 2

Limit index() Search to Subsequence

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

# Find 'c' starting a position 5
L = ['a','b','c','d','e','f','a','b','c','d','e','f']
print(L.index('c',5))
# Prints 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.

# 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))
# Prints 8

index() on Item that Doesn’t Exist

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

L = ['a','b','c','d','e','f','a','b','c','d','e','f']
print(L.index('x'))
# Triggers ValueError: 'x' is not in list

# also within search bound
L = ['a','b','c','d','e','f','a','b','c','d','e','f']
print(L.index('c',4,7))
# Triggers ValueError: 'c' is not in list

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

L = ['a','b','c','d','e','f','a','b','c','d','e','f']
if 'x' in L:
    print(L.index('x'))