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)
Parameter | Condition | Description |
item | Required | Any item (of type string, list, set, etc.) you want to search for |
start | Optional | An index specifying where to start the search. Default is 0. |
end | Optional | An 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'))