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)該函數是大小寫敏感的,且分隔字符串不能為空字符串。
新聞熱點
疑難解答