4 回答
TA贡献1802条经验 获得超4个赞
根据文档(针对 Python 3.8,并强调):
如果sep未指定或为None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾不包含空字符串。
所以,不,它们不是一回事。例如(注意在开始和结束处有一个和一个之间有两个空格):AB
>>> s = " A B "
>>> s.split()
['A', 'B']
>>> s.split(" ")
['', 'A', '', 'B', '']
此外,连续的空白意味着任何空白字符,而不仅仅是空格:
>>> s = " A\t \t\n\rB "
>>> s.split()
['A', 'B']
>>> s.split(" ")
['', 'A\t', '', '\t\n\rB', '']
TA贡献1816条经验 获得超6个赞
>>> print ''.split.__doc__
S.split([sep [,maxsplit]]) -> list of strings
Return a list of the words in the string S, using sep as the
delimiter string. If maxsplit is given, at most maxsplit
splits are done. If sep is not specified or is None, any
whitespace string is a separator and empty strings are removed
from the result.
TA贡献1862条经验 获得超7个赞
此处的文档str.split(sep=None, maxsplit=-1)。笔记:
如果 sep 未指定或为 None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾不包含空字符串。因此,用 None 分隔符拆分空字符串或仅由空格组成的字符串会返回 []。
>>> a = " hello world "
>>> a.split(" ")
['', 'hello', 'world', '']
>>> a.split()
['hello', 'world']
>>> b = "hello world"
>>> b.split(" ")
['hello', '', '', '', '', '', '', '', '', '', '', 'world']
>>> b.split()
['hello', 'world']
>>> c = " "
>>> c.split(" ")
['', '', '', '', '', '', '', '']
>>> c.split()
[]
添加回答
举报