Python String rindex() Method
The rindex()
method is same as the rfind() that returns the index of the last occurence of a substring in the given string. However, unlike the rfind()
method, it raises ValueError
if the substring is not found.
Syntax:
str.rindex(substr, start, end)
Parameters:
- substr: (Required) The substring whose index of the last occurence needs to be found.
- start: (Optional) The starting index position from where the search should start. Default is 0.
- end: (Optional) The ending index position till where the search should end. Default is the end of the string.
Return Value:
An integer value indicating an index of the last occurence of the specified substring.
The following example demonstrates rindex()
method.
greet = 'Hello World!'
print('Index of H: ', greet.rfind('H'))
print('Index of o: ', greet.rindex('o'))
print('Index of l: ', greet.rindex('l'))
print('Index of World: ', greet.rindex('World'))
Index of H: 0
Index of o: 7
Index of l: 9
Index of World: 6
In the above example, greet.rindex('H')
returns the last index of 'Hello World', that is 0 because there no another 'H' in a string.
The greet.rindex('o')
returns the last index of 'o' from 'Hello World', that is 7.
The rindex()
method returns an index of the last occurance only.
greet='Hello World'
print('Index of l: ', greet.rindex'l'))
print('Index of o: ', greet.rindex('o'))
mystr='tutorialsteacher is a free tutorials website'
print('Index of tutorials: ', mystr.rindex('tutorials'))
Index of l: 9
Index of o: 7
Index of tutorials: 27
The rindex()
method performs case-sensitive search. It raises ValueError
if a substring is not found. However, the rfind() method returns -1 if substring not found.
greet='Hello World'
print(greet.rindex('h'))
Traceback (most recent call last):
greet.rindex('h')
ValueError: substring not found
Use the start
and end
parameters to limit the search of a substring between the specified starting and ending indexes.
greet ='Hello World'
print(greet.rindex('o', 0, 10)) # start searching from 0 till 9th index
print(greet.rindex('o', 0, 5)) # start searching from 0 till 4th index
print(greet.rindex('o', -11, -6)) # start searching from -11th till -6th index
print(greet.rindex('o', -11, -3))# start searching from -11th till -3th index
7
4
4
7
In the above example, greet.rindex('o', 0, 10)
returns 7 for 'Hello World'.
The greet.rindex('o', 0, 5)
limits the searching before 5th index (till 4th index), so it returns 4 for 'Hello'