Python String rfind()

The rfind() method returns the highest index of the substring (if found). If not found, it returns -1.

The syntax of rfind() is:

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

rfind() Parameters

The rfind() method takes maximum of three parameters:

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

Return Value from rfind()

The rfind() method returns an integer value.

  • If substring exists inside the string, it returns the highest index where substring is found.
  • If substring doesn't exist inside the string, it returns -1.

How find() and rfind() works in Python?


Example 1: rfind() With No start and end Argument

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

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

result = quote.rfind('small')
print("Substring 'small ':", result)

result = quote.rfind('be,')
if  (result != -1):
  print("Highest index where 'be,' occurs:", result)
else:
  print("Doesn't contain substring")

When you run the program, the output will be:

Substring 'let it': 22
Substring 'small ': -1
Contains substring 'be,'

Example 2: rfind() With start and end Arguments

quote = 'Do small things with great love'

# Substring is searched in 'hings with great love'
print(quote.rfind('things', 10))

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

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

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

When you run the program, the output will be:

-1
25
-1
18