为了账号安全,请及时绑定邮箱和手机立即绑定

.split(" ") 与 .split() 之间有区别吗

.split(" ") 与 .split() 之间有区别吗

MM们 2022-12-06 14:57:04
python中的.split(' ')vs之间有根本区别吗?.split()我相信.split()的默认值是空格,所以两者应该相同,但我在 hackerrank 上得到不同的结果。
查看完整描述

4 回答

?
慕虎7371278

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', '']


查看完整回答
反对 回复 2022-12-06
?
潇湘沐

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.


查看完整回答
反对 回复 2022-12-06
?
牧羊人nacy

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()

[]


查看完整回答
反对 回复 2022-12-06
?
绝地无双

TA贡献1946条经验 获得超4个赞

正如文档中明确提到的:

如果sep未指定或为None,则应用不同的拆分算法:连续的空格被视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾不包含空字符串。


查看完整回答
反对 回复 2022-12-06
  • 4 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信