Python String rindex()

The rindex() method returns the highest index of the substring inside the string (if found). If the substring is not found, it raises an exception.

The syntax of rindex() is:

str.rindex(sub[, start[, end]] )

1. rindex() Parameters

rindex() method takes three parameters:

  • sub – substring to be searched in the str string.
  • start and end(optional) – substring is searched within str[start:end]

2. Return Value from rindex()

  • If substring exists inside the string, it returns the highest index in the string where the substring is found.
  • If substring doesn’t exist inside the string, it raises a ValueError exception.

rindex() method is similar to rfind() method for strings.

The only difference is that rfind() returns -1 if the substring is not found, whereas rindex() throws an exception.

3. Example 1: rindex() With No start and end Argument

quote = 'Let it be, let it be, let it be'

result = quote.rindex('let it')
print("Substring 'let it':", result)
result = quote.rindex('small')
print("Substring 'small ':", result)


Substring 'let it': 22
Traceback (most recent call last):
  File "...", line 6, in <module>
    result = quote.rindex('small')
ValueError: substring not found

Note: Index in Python starts from 0 and not 1.

4. Example 2: rindex() With start and end Arguments

quote = 'Do small things with great love'

# Substring is searched in ' small things with great love' 
print(quote.rindex('t', 2))

# Substring is searched in 'll things with'
print(quote.rindex('th', 6, 20))

# Substring is searched in 'hings with great lov'
print(quote.rindex('o small ', 10, -1))


Traceback (most recent call last):
  File "...", line 10, in <module>
    print(quote.rindex('o small ', 10, -1))
ValueError: substring not found