Python Tuple index() Method

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)

Python tuple index() method parameters
ParameterConditionDescription
itemRequiredAny item 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 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'))