Python中 split() 函数是按照指定的分隔符对字符串进行拆分并把拆分结果存储到一个列表里。
Python的 split() 函数的语法格式如下:
str.split(sep = None, maxsplit = -1)
str 是要被划分的字符串;
该函数有两个参数,其含义如下:
1、基本使用情况
有时,我们可能在数据库中存储了系统设置的信息,并且存储到数据库中的一个字段中,每个设置信息使用“|”进行分隔。当我们读出来后,就可以使用 split() 函数把各个设置信息划分出来。
str1 = "武林网VEVB|http://www.VeVb.com|中国|已备案"
str_list = str1.split("|")
print(str_list)
这个例子中,字符串 str1 使用“|”将每部分进行分隔,在使用时,可以使用split()函数可以将其拆分到列表中进行使用。
输出情况:
['武林网VEVB', 'http://www.VeVb.com', '中国', '已备案']
2、指定 maxsplit 参数
str1 = "武林网VEVB,http://www.VeVb.com,中国,已备案"
str_list = str1.split(",", 2)
print(str_list)
这个例子中,字符串的每部分使用逗号“,”进行分隔,使用split()函数时,指定sep参数的值为逗号“,”,并指定了最多可以拆分的数量 为 2 + 1。
输出情况:
['武林网VEVB', 'http://www.VeVb.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.VeVb.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.VeVb.com', '', '', '']
['', '', 'I', 'am', 'a', 'student.', '', '']
['I','am','a','student.']
[]
['', '', '', '']
从上面的输出结果可以看出,对于连续分隔符的情况,如果是连续的空白,且没有指定分隔符时,Python中的split()函数会忽略空白,如果是指定了分隔符,则全是空白时,分隔的每个结果是空字符串。
新闻热点
疑难解答