index() method in a python list returns the index at which an element is present in the list.

List elements in a python list have numeric indexes where the index of first element from left is 0, second element is 1 and so on.

index() finds the position or index of first occurrence of the item. If an element occurs more than once in the list, then index() will return the index at which the element is found first.

If the value is not present in the list, index() raises a ValueError.


index() syntax
index() method accepts the following arguments:

1. value: This is the element whose index we need to determine.
2. start index: Index from which it starts searching for the element. This argument is optional and defaults to 0. If not given, index() will search from the beginning of list.
3. end index: Index till which index() searches for the element. This argument is optional and defaults to 0. If not given, index() will search till the end of list.

Note that if only one argument is given, index() will consider it as value to search.
If two arguments are given, then index() will consider them as the value and start index while end index will default to the index of last list element.

Example
Below is an example program to demonstrate the working of list index() method.

# define a list
numbers = [1, 4, 3, 2, 1, 5, 12, 4, 16, 6]

# find index of 4
print('Index of 4 is:', numbers.index(4))

# find index of 3
print('Index of 3 is:', numbers.index(3))

This prints

Index of 4 is: 1
Index of 3 is: 2

Note that 4 occurs twice in the list: one at second position(index 1) and other at eighth position(index 7) but index() method returns the position of its first occurrence.
Remember that elements in a list start at index 0.


index() with start and end arguments
Below is an example to demonstrate the usage of arguments in index() method.

# define a list
numbers = [1, 4, 3, 2, 1, 5, 12, 4, 16, 6]
print('Index of 1 in complete list:',numbers.index(1))

# find from 3rd position
print('Index of 1 starting from second position:',
           numbers.index(1,2))

# find between 3rd and 9th position
print('Index of 4 between third and eighth position:',
           numbers.index(4,2,8))

which prints

Index of 1 in complete list: 0
Index of 1 starting from third position: 4
Index of 4 between third and eighth position: 7

Explanation
Above example finds the index of elements
A. In the complete list
It searches for the index of 1 using index() with a single argument. Since 1 is present at the first position, index() returns 0.
B. With start position
index() is supplied two arguments. First is the element to search and second is the starting index from where it should begin searching.
Element to search is 1 and start index is 2. Since 1 is present at 5th position whose index will be 4, it returns 4. Notice that 1 is also present at index 0 but since we supplied 2 as the start index, it did not consider the first element.
C. Between a start and end position
Example searches for 4 between indexes 2 and 8 and returns 7 since 4 is found at this index.
Notice that 4 is also present at index 1 but it does not fall in between 2 and 8, the range we supplied to index().


ValueError
As stated earlier, if index() could not find the value being searched in the list, it raises a ValueError as shown below.

# define a list
numbers = [1, 4, 3, 2, 1, 5, 12, 4, 16, 6]
# find index of non-existing element
print(numbers.index(25))

which outputs

ValueError: 25 is not in list

Hope the article was useful for you.

Leave a Reply