Python rindex()函数与rfind()函数功能相似,其作用是从字符串查找子串最后一次出现的位置索引。但该函数与rfind函数的区别是:在未找到子串时,rfind()函数返回-1,而rindex()函数将引发ValueError错误。
同时,该函数的功能与index()函数也相似,index()函数默认是从左侧开始搜索子串并返回子串第一次出现的位置索引。
官方文档给出的语法格式如下:
str.rindex(sub[, start[, end]])
语法中,str是源字符串,该函数将从 str 中找出子串所在的最高索引值。
sub:是必选参数,待搜索的子字符串,该函数将定位sub在str中最后出现的位置索引;
start:是可选参数,指定在str中开始搜索的起始位置,默认从0开始;
end:是可选参数,指定在str中搜索的截止位置,默认为字符串的长度。
该函数的返回值是一个整型数字,表示sub子串在str中最后出现的位置索引。
只给出sub参数时,rindex默认从字符串str返回sub最后一次出现的位置索引。
str1 = "我喜欢Python,我也喜欢R,但我更喜欢你。"
print(str1.rindex("喜欢"))
print(str1.rindex("R"),str1.rindex("r"))
上面的输出情况如下:
19
Traceback (most recent call last):
File "D:/01Lesson/PY/PythonRindex.py", line 3, in <module>
print(str1.rindex("R"),str1.rindex("r"))
ValueError: substring not found
从上面输出可以看出:(1)第一个例子中有三个喜欢,其索引值分别为1,12和19。从输出结果可以看出,其输出的是最后一个“喜欢”的位置索引;(2)第2个输出发生了ValueError异常,这主要是因为rindex()函数sub参数值是大小写敏感的,其在str中没有找到字符串"r"的值,引发ValueError错误。
start参数给出在字符串str中搜索的起始位置,可以为负数,即从字符串右边往前定位。
str1 = "我喜欢Python,我也喜欢R,但我更喜欢你。"
print(str1.rindex("喜欢", 18))
print(str1.rindex("喜欢", 19))
print(str1.rindex("喜欢", -4))
输出结果如下:
19
19
19
从上面的三个例子中可以看出,rindex()函数在搜索时包含start出的字符。
end 参数给出 rindex 函数搜索的停止位置,搜索范围不包括 end 处的字符。
end 值也可以是负数,即从后往前定位。
str1 = "我喜欢Python,我也喜欢R,但我更喜欢你。"
print(str1.rindex("喜欢", 0, 3))
print(str1.rindex("喜欢", -4, len(str1)))
print(str1.rindex("喜欢", 1, 15))
print(str1.rindex("喜欢", -12, -4))
输出结果如下:
1
19
12
12
(1)Python find()函数
(2)Python rfind()函数
(3)Python index()函数
本文(完)
新闻热点
疑难解答