Python中 partition() 函数的作用是在首次出现分隔字符串的位置把字符串分割为三部分,并以元组的形式返回分割结果,返回的元组中包括分隔字符串之前的部分,分隔字符串本身及分隔字符串之后的部分。
string_name.partition(separator)
(1)string_name 为要被分隔的字符串或字符串变量。
(2)该函数有一个字符串类型的参数:separator,该参数用于指定分隔原字符串的字符串;
(3)该函数的返回类型为元组类型,元组中包括了分割后的三部分:
1、分隔字符串位于原字符串的内部
str1 = "武林网VEVB"
str_sep = "IT"
res = str1.partition(str_sep)
print(res)
输出结果:
('武林网', 'IT', '乐园')
从这个结果可以看出,partition() 函数以分隔字符串为分割依据,将str1 分成了三部分:'武林网'——位于分隔字符串'IT'的前边,'IT'——分隔字符串本身,'乐园'——位于分隔字符串的后边。
2、分隔字符串位于原字符串的头部
str1 = "Python is simple.Python is strong."
res = str1.partition("Python")
print(res)
输出结果:
('', 'Python', ' is simple.Python is strong.')
因为,在字符串str1中,第一个与分隔字符串"Python"匹配的字符串位于最前边,则返回的结果中,第一个为空字符串,然后是分隔字符串本身,最后是位于分隔字符串后边的部分。
3、分隔字符串位于原字符串的尾部
str1 = "I'm studying Python"
res = str1.partition("Python")
print(res)
输出结果为:
("I'm studying ", 'Python', '')
因为,在字符串str1中与分隔字符串“Python”匹配的位置位于最后,所以,返回结果中的第一部分是"Python"前边的内容,然后是分隔字符串本身,最后是一个空字符串。
4、原字符串中不含分隔字符串本身
str1 = "武林网VEVB"
res = str1.partition("Python")
print(res)
输出结果为:
('武林网VEVB', '', '')
由于原字符串中不含分隔字符串“Python”,则输出结果中第一部分是原字符串本身,第二部分和第三部分为空字符串。
5、分隔字符串与原字符串相同
str1 = "Python"
res = str1.partition("Python")
print(res)
输出结果:
('', 'Python', '')
从结果可以看出,若分隔字符串与原字符串相同,则结果中,分隔字符串前后部分都为空字符串。
6、该函数对分隔字符串是大小写敏感的
str1 = "武林网VEVB"
res1 = str1.partition("it")
res2 = str1.partition("IT")
print(res1)
print(res2)
输出结果为:
('武林网VEVB', '', '')
('武林网', 'IT', '乐园')
从这个输出结果可以看出,由于第一个分隔字符串给的是小写形式的“it”,而字符串 str1 中不存在这样的字符串,所以其按照上例(4、原字符串中不含分隔字符串本身)的处理方式来处理,而第2个分隔符给的是大写形式的“IT”,所以其以“IT”作为分隔把原字符串str1分成了三部分。
7、分隔字符串不能为空字符串
分隔字符串作为partition() 函数的参数不能是一个空字符串,否则会给出 ValueError 的错误。但可以是转义字符。如下面的例子:
str1 = "武林网IT/r/n乐园"
res1 = str1.partition("/r/n") #分隔字符串包含转义字符
print(res1)
res2 = str1.partition("") #分隔字符串为空
print(res2)
输出结果如下图所示:
例子中,由于使用了空字符串作为分隔字符串,则给出了 ValueError:empty separator的错误,即分隔符为空的错误。
该函数的具体执行过程为:
(1)如果字符串中包含指定的分隔字符串,则在字符串中首次出现分隔字符串的位置把字符串分成三部分:分隔字符串前面的部分,分隔字符串本身和分隔字符串后边的部分,当然,有可能某部分为空字符串。
(2)如果原字符串中不含分隔字符串则输出结果会包含原字符串本身及两个空字符串。
(3)该函数是大小写敏感的,且分隔字符串不能为空字符串。
新闻热点
疑难解答