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.VeVb.com)
新闻热点
疑难解答