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()函數
本文(完)
新聞熱點
疑難解答