Python中 split() 函數(shù)是按照指定的分隔符對字符串進(jìn)行拆分并把拆分結(jié)果存儲(chǔ)到一個(gè)列表里。
Python的 split() 函數(shù)的語法格式如下:
str.split(sep = None, maxsplit = -1)
str 是要被劃分的字符串;
該函數(shù)有兩個(gè)參數(shù),其含義如下:
1、基本使用情況
有時(shí),我們可能在數(shù)據(jù)庫中存儲(chǔ)了系統(tǒng)設(shè)置的信息,并且存儲(chǔ)到數(shù)據(jù)庫中的一個(gè)字段中,每個(gè)設(shè)置信息使用“|”進(jìn)行分隔。當(dāng)我們讀出來后,就可以使用 split() 函數(shù)把各個(gè)設(shè)置信息劃分出來。
str1 = "武林網(wǎng)VEVB|http://www.survivalescaperooms.com|中國|已備案"
str_list = str1.split("|")
print(str_list)
這個(gè)例子中,字符串 str1 使用“|”將每部分進(jìn)行分隔,在使用時(shí),可以使用split()函數(shù)可以將其拆分到列表中進(jìn)行使用。
輸出情況:
['武林網(wǎng)VEVB', 'http://www.survivalescaperooms.com', '中國', '已備案']
2、指定 maxsplit 參數(shù)
str1 = "武林網(wǎng)VEVB,http://www.survivalescaperooms.com,中國,已備案"
str_list = str1.split(",", 2)
print(str_list)
這個(gè)例子中,字符串的每部分使用逗號“,”進(jìn)行分隔,使用split()函數(shù)時(shí),指定sep參數(shù)的值為逗號“,”,并指定了最多可以拆分的數(shù)量 為 2 + 1。
輸出情況:
['武林網(wǎng)VEVB', 'http://www.survivalescaperooms.com', '中國,已備案']
從輸出可以看出,在指定了 maxsplit 參數(shù)為 2 時(shí),輸出的列表中把原字符串給拆分成了3部分,其中 “中國,已備案” 作為一個(gè)字符串來處理的。
即當(dāng)指定 maxsplit 參數(shù)時(shí),split() 函數(shù)就會(huì)把原字符串拆分成 maxsplit + 1 部分。
3、不指定任何參數(shù)
str1 = "I am a student in Beijing University."
str_list = str1.split()
print(str_list)
str1 = "武林網(wǎng)VEVB"
str_list = str1.split()
print(str_list)
Python中,split()函數(shù)在沒有指定sep參數(shù)的取值時(shí),其默認(rèn)按照使用空格進(jìn)行拆分,如果原字符串中沒有空格的話,則只能把字符串作為整體存儲(chǔ)到列表中。
上面例子的輸出結(jié)果為:
['I', 'am', 'a', 'student', 'in', 'Beijing', 'University.']
4、只指定 maxsplit 參數(shù)
['武林網(wǎng)VEVB']
若只需要指定 maxspit 參數(shù)時(shí),需要顯示的給出參數(shù)的名稱和值,如下例:
str1 = "I am a student."
str_list = str1.split(maxsplit = 2)
print(str_list)
即在調(diào)用函數(shù)時(shí),需要使用: 參數(shù)名稱 = 值 的方式來給參數(shù)賦值。
輸出結(jié)果:
['I', 'am', 'a student.']
5、連續(xù)分隔符的情況
在實(shí)際中,可能遇到多個(gè)分隔符挨在一起的情況,這時(shí),split() 函數(shù)會(huì)把分隔出來的內(nèi)容作為空字符串來處理。
str1 = "武林網(wǎng)VEVB|http:/www.survivalescaperooms.com|||"
str_list = str1.split("|")
print(str_list)
str1 = " I am a student. " #前后兩個(gè)空格
str_list = str1.split(' ') #指定空格作為分隔符
print(str_list)
str_list = str1.split() #不指定分隔符
print(str_list)
str1 = " " #只有三個(gè)空格
str_list = str1.split() #不指定分隔符
print(str_list)
str_list = str1.split(' ') #指定空格作為分隔符
print(str_list)
輸出結(jié)果為:
['武林網(wǎng)VEVB', 'http:/www.survivalescaperooms.com', '', '', '']
['', '', 'I', 'am', 'a', 'student.', '', '']
['I','am','a','student.']
[]
['', '', '', '']
從上面的輸出結(jié)果可以看出,對于連續(xù)分隔符的情況,如果是連續(xù)的空白,且沒有指定分隔符時(shí),Python中的split()函數(shù)會(huì)忽略空白,如果是指定了分隔符,則全是空白時(shí),分隔的每個(gè)結(jié)果是空字符串。
新聞熱點(diǎn)
疑難解答
圖片精選