Python 字符串 rindex() 方法



Python 字符串方法rindex()搜索给定子字符串str在原始字符串中最后出现的位置的索引。如果不存在这样的索引,则此方法会引发异常,可以选择性地将搜索限制在字符串长度内,即从第一个索引到最后一个索引。此方法与 rfind() 方法几乎相同,但不同之处在于 rfind() 方法不会引发异常(ValueError),如果未找到子字符串则返回 -1。

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

语法

以下是 Python 字符串rindex()方法的语法:

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

参数

  • str - 指定要搜索的字符串。

  • beg - 这是一个可选参数,表示起始索引。默认为 0。

  • len - 这是一个可选参数,表示结束索引。默认为字符串的长度。

返回值

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

示例

当以两个字符串作为输入,并且调用 rindex() 和 index() 方法时;index() 方法返回子字符串第一次出现的位置的索引,而 rindex() 方法返回子字符串最后一次出现的位置的索引。

以下示例显示了 Python 字符串 rindex() 方法的用法。

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

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

运行以上程序时,会产生以下结果:

5
2

示例

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

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

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

以上程序产生的输出如下:

49
64

示例

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

在此示例中,该方法在一个输入字符串上调用,并接受三个参数:要查找的子字符串、起始索引和结束索引。

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

让我们运行以上程序,并获取以下输出:

0
15

示例

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

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

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

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

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

示例

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

 
# inputting a string
string = 'Tutorialspoint is a great place to learn Python. Tutorialspoint is an ian company'
# finding the 'Tutorialspoint' 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
python_strings.htm
广告