[docs] [issue37620] str.split(sep=None, maxsplit=-1,any=False)
report at bugs.python.org
Fri Jul 19 14:59:56 EDT 2019
Harry Coin <hgcoin at gmail.com> added the comment:
I suspect the number of times the str.split builtin was examined for use
and rejected in favor of the much more complex and 'heavy' re module
far, far exceeds the number of times it found use with more than one
character in the split string.
The str.split documentation 'feels like' the python equivalent of the
linux 'tr' utility that treats the separator characters as a set instead
of a sequence. Notice the default and the help(str.split)
documentation tends to encourage that intuition as no sep= has a very
different behavior: no argument 'removes any whitespace and discards
empty strings from the result'. That leads one to suspect each
character in a string would do the same.
Mostly it's a use-case driven obviousness, you'd think python would
naturally do that in str.split. So very many cases seek to resolve a
string into a list of the interesting bits without regard to any mix of
separators (tabs, spaces, etc to increase the readability of the file).
I think it would be a heavily used enhancement to add the 'any=True'
Or, in the alternative, allow the argument to sep to be an iterable so
'ab, cd'.split(sep=' ,') --> ['ab, cd']
'ab, cd'.split(sep=[' ',',']) -> ['ab', 'cd']
On 7/19/19 1:34 PM, Serhiy Storchaka wrote:
> Serhiy Storchaka <storchaka+cpython at gmail.com> added the comment:
> An alternative is to use regular expressions.
>>>> re.split('[\t ]+', 'ab\t cd ef')
> ['ab', 'cd', 'ef']
> nosy: +serhiy.storchaka
> Python tracker <report at bugs.python.org>
Python tracker <report at bugs.python.org>
More information about the docs