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