对于长字符串,我们一般要怎么处理呢?除了切片,但是切片太麻烦了。python为我们提供了字符串切割函数,它不仅可以通过指定字符切割,也可以去除空格符哦。下面就看一下小猿圈Python讲师是怎么介绍Python字符串操作--字符串分割函数的吧。





split()

语法:str.split(str=' ', num=string.count(str))

描述:通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分隔num个子字符串。

参数:str 分隔符,默认为所有的空字符包括空格、换行(\n)、制表符(\t)。

num 分割次数

返回值:返回的是分割后字符串组成的列表。

>>> a = '\tabc \nm \tdef \t'
>>> a.split()
['abc', 'm', 'def']
>>> b = 'www.kouding.com'
>>> b.split('.')
['www', 'kouding', 'com']
>>> b.split('.',1)
['www', 'kouding.com']
>>> c = 'aabbbaaccca'
>>> c.split('a') #当分割后左边什么都没有会被空字符串填充
['', '', 'bbb', '', 'ccc', '']
>>> c.split('aa')
['', 'bbb', 'ccca']
>>>

注字符串被某一字符(或字符串)分割,且分割n次,并将分割的完成的字符串(或字符)赋给新的(n+1)个变量。

如:按‘.’分割字符,且分割1次,并将分割后的字符串赋给2个变量str1,str2

>>> str1,str2 = b.split('.',1)
>>> print(str1,str2)
www kouding.com
>>> b.split('.',1)[0]
'www'
>>> b.split('.',1)[1]
'kouding.com'
>>>
splintlines()

语法:str.splitlines([keepends=Flase])

描述:按照行界符('\r', '\r\n', \n'等)分隔,返回一个包含各行作为元素的列表,默认不包含行界符。

参数:keepends 决定结果是否包含行界符。默认为False,不包含行界符。

返回值:返回一个包含各行作为元素的列表。

>>> a = 'abc\ndef\ngh'
>>> a.splitlines()
['abc', 'def', 'gh']
>>> t = """www.kouding.com
www.qianfeng.com
www.baidu.com
"""
>>> t.splitlines()
['www.kouding.com ', 'www.qianfeng.com ', 'www.baidu.com ']
>>> t.splitlines(True)
['www.kouding.com \n', 'www.qianfeng.com \n', 'www.baidu.com \n']
>>>

是不是觉得split()与splitlines()差不多,其实还是有一些区别的:

>>> print(''.split('\n'),''.splitlines())
[''] []
>>> print('abc\n'.split('\n'),'abc\n'.splitlines())
['abc', ''] ['abc']
>>>