首页 > 解决方案 > .split(" ") 与 .split() 之间有区别吗

问题描述

与python中的.split(' ')vs有根本区别吗?.split()我相信.split()默认值是空格,所以两者应该相同,但我在hackerrank 上得到不同的结果。

标签: pythonsplit

解决方案


根据文档(对于 Python 3.8,我强调):

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

所以,不,它们不是一回事。例如(请注意,开头和结尾的and和一个之间有两个空格):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', '']

推荐阅读