Python字串方法之-分割字串

Python字串方法之-分割字串

37、partition()

描述:

根據指定的分隔符(sep)將字串進行分割。從字串左邊開始索引分隔符sep,索引到則停止索引。

語法:

str。partition(sep)

引數:

sep —— 指定的分隔符。

返回值:

(head, sep, tail) 返回一個三元元組,head:分隔符sep前的字串,sep:分隔符本身,tail:分隔符sep後的字串。如果字串包含指定的分隔符sep,則返回一個三元元組,第一個為分隔符sep左邊的子字串,第二個為分隔符sep本身,第三個為分隔符sep右邊的子字串。如果字串不包含指定的分隔符sep,仍然返回一個三元元組,第一個元素為字串本身,第二第三個元素為空字串

示例:

string = ‘https://www。google。com。hk/’string。partition(“://”) #字串str中存在sep“://”(‘https’, ‘://’, ‘www。google。com。hk/’)string。partition(“,”) #字串str中不存在sep“,”,返回了兩個空字串。(‘https://www。google。com。hk/’, ‘’, ‘’)string。partition(“。”) #字串str中存在兩個“。” 但索引到www後的“。” 停止索引。(‘https://www’, ‘。’, ‘google。com。hk/’)type(string。partition(“://”)) #返回的是tuple型別tup

38、rpartition()

描述:

根據指定的分隔符(sep)將字串進行分割。從字串右邊(末尾)開始索引分隔符sep,索引到則停止索引。

語法:

str。rpartition(sep)

引數:

sep —— 指定的分隔符。

返回值:

(head, sep, tail) 返回一個三元元組,head:分隔符sep前的字串,sep:分隔符本身,tail:分隔符sep後的字串。如果字串包含指定的分隔符sep,則返回一個三元元組,第一個為分隔符sep左邊的子字串,第二個為分隔符sep本身,第三個為分隔符sep右邊的子字串。如果字串不包含指定的分隔符sep,仍然返回一個三元元組,第一個元素為字串本身,第二第三個元素為空字串。

注:rpartition()函式與partition()函式用法相似,rpartition()函式從右邊(末尾)開始索引,partition()函式從左邊開始索引。

示例:

string = ‘https://www。google。com。hk/’string。rpartition(“。”) #字串str中不存在sep“,”,返回了兩個空字串。 (‘https://www。google。com’, ‘。’, ‘hk/’)string。partition(“。”) #字串str中不存在sep“,”,返回了兩個空字串。(‘https://www’, ‘。’, ‘google。com。hk/’)

39、split()

描述:

拆分字串。透過指定分隔符sep對字串進行分割,並返回分割後的字串列表。

語法:

str。split(sep=None, maxsplit=-1) [n]

sep —— 分隔符,預設為空格,但不能為空即(“)。

maxsplit —— 最大分割引數,預設引數為-1。

[n] —— 返回列表中下標為n的元素。列表索引的用法。

示例:

#預設空格分割str1 = ”I love python“str1。split()[‘I’, ‘love’, ‘python’]#取第三位str1。split()[2]‘python’#以”。“為分隔符,maxsplit預設為-1str2 = ‘列夫·尼古拉耶維奇·托爾斯泰’str2。split(‘·’)[‘列夫’, ‘尼古拉耶維奇’, ‘托爾斯泰’]#以”。“為分隔符,只分割一次。str2。split(‘·’,1) [‘列夫’, ‘尼古拉耶維奇·托爾斯泰

40、rsplit()

描述:

拆分字串。透過指定分隔符sep對字串進行分割,並返回分割後的字串列表,類似於split()函式,只不過 rsplit()函式是從字串右邊(末尾)開始分割。

語法:

str。rsplit(sep=None, maxsplit=-1) -> list of strings 返回 字串列表 或str。rsplit(sep=None, maxsplit=-1)[n]

引數:

sep —— 分隔符,預設為空格,但不能為空即(”)。

maxsplit —— 最大分割引數,預設引數為-1。

[n] —— 返回列表中下標為n的元素。列表索引的用法。

示例:

# 只搜尋到一個sep時,兩者結果相同’abcxyzopq‘。partition(’xy‘)(’abc‘, ’xy‘, ’zopq‘)’abcxyzopq‘。rpartition(’xy‘)(’abc‘, ’xy‘, ’zopq‘)# 搜尋到多個sep時,分別從左第一個、右第一個sep分割’abcxyzopxyq‘。partition(’xy‘)(’abc‘, ’xy‘, ’zopxyq‘)’abcxyzopxyq‘。rpartition(’xy‘)(’abcxyzop‘, ’xy‘, ’q

41、splitlines()

描述:

按照(‘\n’, ‘\r’, \r\n‘等)分隔,返回一個包含各行作為元素的列表,預設不包含換行符。\n 換行符 \r 回車符 \r\n 回車+換行

語法:

S。splitlines([keepends=False])

引數:

keepends —— 在輸出結果裡是否去掉行界符(’\r‘, ’\r\n‘, \n’等),預設為 False,不包含行界符,如果為 True,則保留行界符。

示例:

# 字串以換行符為分隔符拆分,去掉換行符‘HOW\nSOFT\nWORKS’。splitlines()[‘HOW’, ‘SOFT’, ‘WORKS’]# 如果keepends為True,保留換行符‘HOW\nSOFT\nWORKS’。splitlines(True)[‘HOW\n’, ‘SOFT\n’, ‘WORKS’]“123\n456\r789\r\nabc”。splitlines()[‘123’, ‘456’, ‘789’, ‘abc’

42、join()

描述:

將iterable變數的每一個元素後增加一個str字串。

語法:

sep。join(iterable)

sep——分隔符。可以為空。

iterable—— 要連線的變數 ,可以是 字串,元組,字典,列表等。

示例:

python中經常看到join,特別是在自然語言處理的時候,分詞什麼的,但是很多初學者不理解其中的意思,這裡進行詳細的介紹,希望對大家能有幫助。將可迭代物件(iterable)中的字串使用string連線起來。注意,iterable中必須全部是字串型別,否則報錯。如果你還是python的初學者,還不知道iterable是什麼,卻想來看看join的具體語法,那麼你可以暫時將它理解為:字串string、列表list、元組tuple、字典dict、集合set。當然還有生成器generator等也可以用該方法。1)字串L=‘python’‘_’。join(L)‘p_y_t_h_o_n’‘_uu_’。join(L)‘p_uu_y_uu_t_uu_h_uu_o_uu_n’2)元組L1=(‘1’,‘2’,‘3’)‘_’。join(L1)‘1_2_3’3)集合。注意,集合無序。L2={‘p’,‘y’,‘t’,‘h’,‘o’,‘n’}‘_’。join(L2)‘t_n_o_h_y_p’4)列表L2=[‘py’,‘th’,‘o’,‘n’]‘_’。join(L2)‘py_th_o_n’5)字典L3={‘name’:“malongshuai”,‘gender’:‘male’,‘from’:‘China’,‘age’:18}‘_’。join(L3)‘name_gender_from_age’6)iterable參與迭代的部分必須是字串型別,不能包含數字或其他型別。L1=(1,2,3)‘_’。join(L1)TypeError: sequence item 0: expected str instance, int found以下兩種也不能join。L1=(‘ab’,2)L2=(‘AB’,{‘a’,‘cd’})