If I understand correctly you want to avoid empty strings.
You can just use list comprehension, do this:
chunks = [x for x in str.split('Welcome
') if x]
Should solve your problem. Why?
First of all, the list comprehension adds if x
in the end, this means that it will include in the list only truthy values (or rather, will omit falsy values).
But why did you get ''
in the first place? It would be the easier to point you at the source code for split
:
while (maxcount-- > 0) {
pos = FASTSEARCH(str+i, str_len-i, sep, sep_len, -1, FAST_SEARCH);
if (pos < 0)
break;
j = i + pos;
SPLIT_ADD(str, i, j);
i = j + sep_len;
}
Basically, split function looks for the next occurrence of sep
in split(sep)
and derives a substring from last occurrence to pos(it would do it maxcount
times). Since you got Welcome
in pos 0 and your "last occurence" is 0, it will make a substring from 0 to 0 which results in an empty string.
By the way, you would also get empty string for such string:
'Welcome
Welcome
to
PythonExamples
Welcome
to
PythonExamples'
results for your code, without my change:
['', '', 'to
PythonExamples
', 'to
PythonExamples']
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…