Searches the tuple 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 tuple.
Syntax
tuple.index(item,start,end)
Parameter | Condition | Description |
item | Required | Any item 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 tuple. |
Basic Example
# Find index of 'green' in a tuple
T = ('red', 'green', 'blue', 'yellow')
print(T.index('green'))
# Prints 1
index() on Duplicate Items
If the tuple has many instances of the specified item, the index()
method returns the index of first instance only.
# Find first occurrence of character ‘c’
T = ('a','b','c','d','e','f','a','b','c','d','e','f')
print(T.index('c'))
# Prints 2
Limit index() Search to Subsequence
If you want to search the tuple from the middle, specify the start parameter.
# Find 'c' starting a position 5
T = ('a','b','c','d','e','f','a','b','c','d','e','f')
print(T.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
T = ('a','b','c','d','e','f','a','b','c','d','e','f')
print(T.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 tuple.
T = ('a','b','c','d','e','f','a','b','c','d','e','f')
print(T.index('x'))
# Triggers ValueError: tuple.index(x): x not in tuple
# also within search bound
T = ('a','b','c','d','e','f','a','b','c','d','e','f')
print(T.index('c',4,7))
# Triggers ValueError: tuple.index(x): x not in tuple
To avoid such exception, you can check if item exists in a tuple, using in operator inside if statement.
T = ('a','b','c','d','e','f','a','b','c','d','e','f')
if 'x' in T:
print(T.index('x'))