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 aNoneseparator returns[].
(Emphasis mine)
"".split(" ")returns a list of only one empty string. Please double check your results.print "".split(" "). Moreover, it looks like Python 2.x, why do you have Python-3.x tag?