Python rpartition()字符串處理函數的作用與partition()函數功能相似,只不過其是從右端開始匹配搜索串。
Python rpartition()函數以搜索字符串最后出現的位置為分割,將源字符串分為三部分,并以元組的形式返回分割后的結果,其中元組中的第一個字符串元素是搜索子串之前的內容,第二個字符串元素是搜索子串本身,第三個字符串元素是搜索子串之后的內容。
str.rpartition(sep)
str是要被搜索的字符串,該函數將在str中找到sep的位置,并以sep為分割,將str分割為三部分。
sep是一個字符串類型的參數,用于指定作為分割作用的字符串。
該函數返回一個三元組類型,元組中包含的三部分分別為:
sep之前的部分;
sep本身
sep之后的部分。
str1 = "我開始學習Python編程了。"
print(str1.rpartition("Python"))
print(str1.partition("Python"))
輸出結果:
('我開始學習', 'Python', '編程了。')
('我開始學習', 'Python', '編程了。')
從結果中可以看出,當str中僅包含一個匹配時,rpartition()函數的作用與partition()函數的輸出結果相同。
str2 = "Python是簡單易學的。"
print(str2.rpartition("Python"))
print(str2.partition("Python"))
輸出結果如下:
('', 'Python', '是簡單易學的。')
('', 'Python', '是簡單易學的。')
從上面結果可以看出,當sep位于str最前端時,rpartition()函數返回的元組中第一個元素是一個空字符串,因為sep之前沒有任何內容,這與partition()函數的作用也是相同的。
str3 = "一起來學習Python"
print(str3.rpartition("Python"))
print(str3.partition("Python"))
輸出結果如下:
('一起來學習', 'Python', '')
('一起來學習', 'Python', '')
從輸出結果可以看出,當sep位于str最右端時,返回的元組最后一個元素為空字符串,這是因為sep右邊沒有任何內容。這與partition()函數的作用完全相同。
str4 = "我們在學習Python,Python是強大的。"
print(str4.rpartition("Python"))
print(str4.partition("Python"))
輸出結果如下:
('我們在學習Python,', 'Python', '是強大的。')
('我們在學習', 'Python', ',Python是強大的。')
從上面的輸出結果可以看出,rpartition()函數以最后一個"Python"為分界部分,將str4分為三部分,而partition()是以第一個"Python"為分界部分,將str4分為三部分,實際上,這也是rpartition()函數和partition()函數的實質區別。
str5 = "我學習python快5年了。"
print(str5.rpartition("Java"))
print(str5.partition("Java"))
輸出結果:
('', '', '我學習python快5年了。')
('我學習python快5年了。', '', '')
從以上的輸出結果可以看出,當str中不包含sep時,rpartition()函數返回的元組的前兩個為空字符串,這很容易理解:當rpartition()從右端往前搜索時,找到str前端也沒發現sep,則整個str作為元組中的第3個元素,sep本身不存在則為空字符串,也沒有對應的第一部分,則也為空字符串。而partition()函數返回的元組后兩個為空字符串。
str6 = "Python is good."
print(str6.rpartition(''))
輸出內容如下:
Traceback (most recent call last):
File "D:/01Lesson/PY/rpartition.py", line 23, in <module>
print(str6.rpartition(''))
ValueError: empty separator
從上面輸出可以看出,當sep為空字符串時會引發ValueError錯誤。
rpartition()函數與partition()函數一樣對字符是區分大小寫的,看下面這個例子:
str7 = "Python is good,python is easy."
print(str7.rpartition('Python'))
輸出結果如下:
('', 'Python', ' is good,python is easy.')
從輸出結果可以看出,sep指定的為“Python”,第一個字母大寫,所以rpartition()實際上是以開頭的“Python”作為分割,而不是中間的那個“python”。
str.rpartition(sep)函數的作用是以str中最后一個出現的sep作為分割,把字符串分為三部分:sep前面的部分,sep本身和sep后面的部分。
如果str中不包含sep,則返回的三元元組中的元素是兩個空字符串和str本身。
rpartition對傳入的參數sep是區分大小寫的。
rpartition不能傳入空字符串,也不能為None,但可以是其它格式控制符,如'/r','/n'等。
如有問題,歡迎留言。如需轉載,請注明出處和本文的鏈接地址:
武林網VEVB(http://www.companysz.com)
新聞熱點
疑難解答