python拆分空字符串

Wea*_*Fox 3 python python-2.7

有人可以在python 2.7.8上解释这个行为:

Python 2.7.8 (default, Nov 12 2014, 02:03:09)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = ''
>>> a.split()
[]
>>> a.split('\n')
['']
Run Code Online (Sandbox Code Playgroud)

由任何空格分割得到一个空列表,但是用新行分割会给出一个带有空字符串的列表.为什么?

谢谢

ndp*_*dpu 5

来自python str.split docs(https://docs.python.org/2/library/stdtypes.html#str.split):

如果给出了sep,则连续的分隔符不会组合在一起并被视为分隔空字符串(例如,'1,,2'.split(',')返回['1','','2']).sep参数可以包含多个字符(例如,'1 <> 2 <> 3'.split('<>')返回['1','2','3']).使用指定的分隔符拆分空字符串将返回[''].

如果未指定sep或为None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾处不包含空字符串.因此,将空字符串或仅由空格组成的字符串拆分为None分隔符将返回[].