为什么Python“” .split()和“” .split(“”)产生不同的结果?

时间:2018-07-22 18:55:28

标签: python string python-3.x split

这是当我对带有默认定界符并在Python中使用“”作为定界符的空字符串应用split()时的结果。

>>> print(" ".split(" "))
['','']
>>> print(" ".split())
[]

有人可以解释吗?

1 个答案:

答案 0 :(得分:1)

如果documentation on str.split不带参数拆分并且使用' '作为参数,则明确提到不同的行为:

  

str.split(sep=None, maxsplit=-1)

     

[...]

     

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

     

[...]

     

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

(强调我的)