【4.8】python里splitlines、split
一、split
Python的split方法函数可以分割字符串成列表,默认是以空格作为分隔符sep来分割字符串。那么行的分割呢?
In [1]: s = "www jeapedu com"
In [2]: print s.split()
['www', 'jeapedu', 'com']
当然可以改变sep分割字符串为其他字符串。
In [6]: t = "www.jeapedu.com"
In [7]: print t.split(".")
['www', 'jeapedu', 'com']
二、splitlines
python的字符串类里还提供了splitlines方法函数。
splitlines(...)
S.splitlines(keepends=False) -> list of strings
Return a list of the lines in S, breaking at line boundaries.
Line breaks are not included in the resulting list unless keepends
is given and true.
splitlines函数什么意思呢?
u = "www.jeapedu.com\nwww.chinagame.me\nwww.quanzhan.org"
print u.splitlines()
['www.jeapedu.com', 'www.chinagame.me', 'www.quanzhan.org']
这个例子不好,因为用split('\n')也可以分割成上面的结果。
u = "www.jeapedu.com\nwww.chinagame.me\nwww.quanzhan.org"
print u.split("\n")
['www.jeapedu.com', 'www.chinagame.me', 'www.quanzhan.org']
结果一样,但是下面的测试用例就必须用splitlines了。
t = '''www.jeapedu.com
www.chinagame.me
www.quanzhan.org
'''
print t.splitlines()
['www.jeapedu.com', ' www.chinagame.me', ' www.quanzhan.org']
结果不太好,用strip函数去掉字符串前后的空格。
好,至此splitlines的基本使用已经解析完成,那splitlines里的参数keepends又是什么意思呢?
t = '''www.jeapedu.com
www.chinagame.me
www.quanzhan.org
'''
print t.splitlines()
print t.splitlines(True)
默认splitelines参数keepends为False,意思是不保留每行结尾的\n, 而keepends为True时,分割的每 一行里尾部会有\n。
总结,splitlines是按行分割字符串,返回值也是个列表。
三、讨论
3.1 split通过多个字符分割字符串
Python中的spilt方法只能通过指定的某个字符分割字符串,如果需要指定多个字符,需要用到re模块里的split方法。
例子:
>>> import re
>>> a = "Hello world!How are you?My friend.Tom"
>>> re.split(" |!|\?|\.", a)
['Hello', 'world', 'How', 'are', 'you', 'My', 'friend', 'Tom']
参考资料
这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn