This is the result when I apply split() against an empty string with default delimiter and with a " " as delimiter in Python.
>>> print(" ".split(" "))
['','']
>>> print(" ".split())
[]
Can somebody please explain?
This is the result when I apply split() against an empty string with default delimiter and with a " " as delimiter in Python.
>>> print(" ".split(" "))
['','']
>>> print(" ".split())
[]
Can somebody please explain?
The documentation on str.split
explicitly mentions the different behavior if you split with no argument and when you use ' '
as argument:
str.split(sep=None, maxsplit=-1)
[...]
If sep is given, consecutive delimiters are not grouped together and are deemed to delimit empty strings (for example,
'1,,2'.split(',')
returns['1', '', '2']
). The sep argument may consist of multiple characters (for example,'1<>2<>3'.split('<>')
returns['1', '2', '3']
). Splitting an empty string with a specified separator returns['']
.[...]
If sep is not specified or is
None
, a different splitting algorithm is applied: runs of consecutive whitespace are regarded as a single separator, and the result will contain no empty strings at the start or end if the string has leading or trailing whitespace. Consequently, splitting an empty string or a string consisting of just whitespace with aNone
separator returns[]
.
(Emphasis mine)