Python String rindex() 方法



Python String rindex() 方法搜索在原始字符串中找到给定子字符串 str 的最后一个索引。如果不存在此类索引,则此方法会引发异常,可以选择将搜索限制为字符串长度,即从第一个索引到最后一个索引。此方法与 rfind() 方法几乎相似,但区别在于 rfind() 方法不会引发异常(值错误),如果未找到子字符串,则返回 -1。

但是,如果同一子字符串多次出现,则该方法将查找最后一次出现的最后一个索引。

语法

以下是 Python String rindex() 方法的语法 -


 str.rindex(str, beg=0 end=len(string))

参数

  • str − 指定要搜索的字符串。
  • beg − 这是一个可选参数,表示起始索引。默认值为 0
  • len − 这是一个可选参数,表示结束索引,其默认值等于字符串的长度。

返回值

如果找到,此方法返回最后一个索引,否则如果未找到 str ,则会引发异常。

当两个字符串作为 input 时,将同时调用 rindex() 和 index() 方法;第一次出现的 substring 的索引由 index() 方法返回,而最后一次出现的索引由 rindex() 方法返回。

以下示例显示了 Python String rindex() 方法的用法。


str1 = "this is string example....wow!!!";
str2 = "is";

print str1.rindex(str2)
print str1.index(str2)

当我们运行上述程序时,它会产生以下结果——

5
2

当我们输入一个字符串并将另一个字符串作为子字符串参数传递时,该方法返回子字符串的最后一个索引。

在此示例中,我们创建一个字符串,并通过将子字符串作为参数传递来调用 rindex() 方法。


# inputting a string
string = 'qikepu is a great place to learn Python. qikepu is an ian company'
# finding the 'qikepu' using rindex
print(string.rindex('qikepu'))
# finding the 'is' using rfind
print(string.rindex('is'))

上述程序产生的输出如下 -

49
64

如果我们将三个参数(包括可选参数)传递给该方法,则会检测到给定索引限制内子字符串的最后一个索引。

在此示例中,该方法在输入字符串上调用,它采用三个参数:要定位的子字符串、开始索引和结束索引。


# inputting a string
string = 'qikepu is a great place to learn Python. qikepu is an ian company'
# finding the 'qikepu' using rindex
print(string.rindex('qikepu', 0, 45))
# finding the 'is' using rfind
print(string.rindex('is', 0, 45))

让我们运行上面的程序,并获得如下输出 -

0 15

如果作为方法的参数给出的子字符串在字符串中不存在,则该方法将引发 ValueError。

在给定的程序中,创建一个字符串并在其上调用该方法。作为参数传递给方法的子字符串不是输入字符串的一部分,该方法会引发异常。


# inputting a string
string = 'qikepu is a great place to learn Python. qikepu is an ian company'
# finding the 'qikepu' using rindex
print(string.rindex('qikepu'))

当我们尝试运行程序时,会引发 ValueError 而不是打印输出 -

---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
in
3
4 # finding the 'qikepu' using rfind
----> 5 print(string.rindex('qikepu'))
ValueError: substring not found

即使子字符串存在于字符串中但不在传递给此方法的可选参数提供的限制内,也会引发 ValueError。


# inputting a string
string = 'qikepu is a great place to learn Python. qikepu is an ian company'
# finding the 'qikepu' using rindex
print(string.rindex('Python', 0, 15))

当我们运行上述程序时,它会产生以下结果——

Traceback (most recent call last):
File "main.py", line 4, in
print(string.rindex('Python', 0, 15))
ValueError: substring not found