Python String rindex() 函数用法

2023-09-17 22:22:29

rindex() 方法与返回给定字符串中子字符串最后一次出现的索引的 rfind() 相同。但是,与 rfind() 方法不同,如果未找到子字符串,它会引发ValueError

语法:

str.rindex(substr, start, end)

参数:

  1. substr:(必需)需要查找其最后匹配项的索引的子字符串。
  2. start:(可选)搜索应从何处开始的起始索引位置。默认值为 0。
  3. end:(可选)到搜索应结束的位置的结束索引位置。默认值为字符串的结尾。

返回值:

一个整数值,指示指定子字符串最后一次出现的索引。

下面的示例演示rindex()方法。

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

在上面的示例中,greet.rindex('H')返回">Hello World"的最后一个索引,即 0,因为字符串中没有另一个"H"。 greet.rindex('o')返回来自"Hello W o rld"的最后一个索引">o",即 7。

rindex()方法仅返回上次出现的索引。

greet='Hello World'
print('Index of l: ', greet.rindex'l'))
print('Index of o: ', greet.rindex('o'))
mystr='python114.com is a free tutorials website'
print('Index of tutorials: ', mystr.rindex('tutorials'))

输出:

Index of l:  9
Index of o:  7
Index of tutorials:  27

rindex()方法执行区分大小写的搜索。如果未找到子字符串,则会引发ValueError。但是,如果未找到子字符串,则 rfind() 方法返回 -1。

greet='Hello World'
print(greet.rindex('h')) 

输出:

Traceback (most recent call last):
    greet.rindex('h')
ValueError: substring not found

使用 startend 参数可以限制在指定的起始索引和结束索引之间搜索子字符串。

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

在上面的示例中,greet.rindex('o', 0, 10)返回 'Hello World' 的 7。 greet.rindex('o', 0, 5)限制在第 5 个索引之前(直到第 4 个索引)的搜索,因此它为 'Hello' 返回 4