The Python String rfind() method is a built-in function that returns the substring’s highest index (last occurrence) in a given string. If not found, it returns -1.
Syntax
The Syntax of rfind()
method is:
str.rfind(sub, start, end)
Parameters
The rfind()
method can take three parameters.
- sub – substring that needs to be searched in the given string.
- start (optional) – starting position where the substring needs to be searched within the string
- end (optional) – ending position where the substring needs to be searched within the string
Note: If the start and end indexes are not provided, by default, it takes0
as the starting index andstr.length-1
as the end index
Return Value
The rfind()
method returns an integer value, an index of a substring.
- If the substring is found in the given string, the
rfind()
method will return the highest index of the substring. - If the substring is not found in the given string, it returns
-1

Difference between rfind() method and rindex() method
The rfind()
method is similar to rindex()
method. The only major difference is that the rfind()
method returns -1
if the substring is not found in a given string, whereas the rindex()
method will raise the ValueError: substring not found exception.
Example 1: rfind() method without any arguments
text = 'she sells seashells on the seashore'
# find the index of last occurence of substring 'sea'
output = text.rfind('sea')
print("The index of last occurrence of 'sea' is:", output)
# find the index of character 'lls'
output = text.rfind('lls')
print("The index of last occurrence of 'lls' is:", output)
# find the index of substring 'fish', returns -1
output = text.rfind('fish')
print("The index of last occurrence of 'fish' is:", output)
Output
The index of last occurrence of 'sea' is: 27
The index of last occurrence of 'lls' is: 16
The index of last occurrence of 'fish' is: -1
Example 2: rfind() method with start and end Arguments
text = 'she sells seashells on the seashore'
# find the index of last occurence of substring 'sea'
output = text.rfind('sea', 25)
print("The index of last occurrence of 'sea' is:", output)
# find the index of character 'lls'
output = text.rfind('lls', 1, 10)
print("The index of last occurrence of 'lls' is:", output)
# find the index of substring 'fish', returns -1
output = text.rfind('fish', 1, 50)
print("The index of last occurrence of 'fish' is:", output)
# find the index of substring 's'
output = text.rfind('s', 1, -20)
print("The index of last occurrence of 's' is:", output)
Output
The index of last occurrence of 'sea' is: 27
The index of last occurrence of 'lls' is: 6
The index of last occurrence of 'fish' is: -1
The index of last occurrence of 's' is: 13