首页 > 开发 > Python > 正文

Python rpartition()函数

2023-04-24 19:21:41
字体:
来源:转载
供稿:网友

Python rpartition()字符串处理函数的作用与partition()函数功能相似,只不过其是从右端开始匹配搜索串。

Python rpartition()函数以搜索字符串最后出现的位置为分割,将源字符串分为三部分,并以元组的形式返回分割后的结果,其中元组中的第一个字符串元素是搜索子串之前的内容,第二个字符串元素是搜索子串本身,第三个字符串元素是搜索子串之后的内容。

rpartition()语法格式

str.rpartition(sep)

str是要被搜索的字符串,该函数将在str中找到sep的位置,并以sep为分割,将str分割为三部分。

参数

sep是一个字符串类型的参数,用于指定作为分割作用的字符串。

返回值

该函数返回一个三元组类型,元组中包含的三部分分别为:

sep之前的部分;

sep本身

sep之后的部分。

Python rpartition()函数

rpartition()函数使用举例

1、sep位于str内部

str1 = "我开始学习Python编程了。"
print(str1.rpartition("Python"))
print(str1.partition("Python"))

输出结果:

('我开始学习', 'Python', '编程了。')
('我开始学习', 'Python', '编程了。')

从结果中可以看出,当str中仅包含一个匹配时,rpartition()函数的作用与partition()函数的输出结果相同。

2、sep位于str的最前端

str2 = "Python是简单易学的。"
print(str2.rpartition("Python"))
print(str2.partition("Python"))

输出结果如下:

('', 'Python', '是简单易学的。')
('', 'Python', '是简单易学的。')

从上面结果可以看出,当sep位于str最前端时,rpartition()函数返回的元组中第一个元素是一个空字符串,因为sep之前没有任何内容,这与partition()函数的作用也是相同的。

3、sep位于str最右边

str3 = "一起来学习Python"
print(str3.rpartition("Python"))
print(str3.partition("Python"))

输出结果如下:

('一起来学习', 'Python', '')
('一起来学习', 'Python', '')

从输出结果可以看出,当sep位于str最右端时,返回的元组最后一个元素为空字符串,这是因为sep右边没有任何内容。这与partition()函数的作用完全相同。

4、str中包含多个sep

str4 = "我们在学习Python,Python是强大的。"
print(str4.rpartition("Python"))
print(str4.partition("Python"))

输出结果如下:

('我们在学习Python,', 'Python', '是强大的。')
('我们在学习', 'Python', ',Python是强大的。')

从上面的输出结果可以看出,rpartition()函数以最后一个"Python"为分界部分,将str4分为三部分,而partition()是以第一个"Python"为分界部分,将str4分为三部分,实际上,这也是rpartition()函数partition()函数的实质区别。

5、str中不含sep

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()函数返回的元组后两个为空字符串。

6、sep不能为空字符串

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错误。

7、区分大小写

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)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表