Python:分裂时的第一个字符

Cha*_*l72 3 python string split

我刚刚注意到,split如果第一个字符是分隔符字符串,则该方法在结果列表中生成一个空字符串.

例:

>>> s = '/foo/bar/blarg'
>>> s.split('/')
['', 'foo', 'bar', 'blarg']
Run Code Online (Sandbox Code Playgroud)

我希望这能产生:

['foo', 'bar', 'blarg']
Run Code Online (Sandbox Code Playgroud)

有什么理由说这是理想的行为,还是这只是一个错误?

Dav*_*ver 5

这是期望的行为,因为否则将无法区分"/foo".split("/")"foo".split("/').

当我使用split并知道我不想要空字符串时,我会用它filter(None, foo.split("/"))来删除它们:

>>> filter(None, "/foo//bar".split("/"))
['foo', 'bar']
Run Code Online (Sandbox Code Playgroud)