Python分割连续定界符

| Python中的默认“ 0”方法将连续的空格视为单个定界符。但是,如果指定分隔符字符串,则不会折叠连续的分隔符:
>>> \'aaa\'.split(\'a\')
[\'\', \'\', \'\', \'\']
折叠连续定界符的最直接方法是什么?我知道我可以从结果列表中删除空字符串:
>>> result = \'aaa\'.split(\'a\')
>>> result
[\'\', \'\', \'\', \'\']
>>> result = [item for item in result if item]
但是有没有更方便的方法呢?     
已邀请:
        您可以将带有正则表达式的ѭ3用作分隔符,如下所示:
re.split(pattern, string[, maxsplit=0, flags=0])
    
        这是您可以得到的尽可能简洁:
string = \'aaa\'
result = [s for s in string.split(\'a\') if s]
或者您可以切换到正则表达式:
string = \'aaa\'
result = re.split(\'a+\', string)
    
        您可以使用正则表达式:
re.split(pattern, string[, maxsplit=0, flags=0])
re.split(\'a+\', \'aaa\')
    
        我认为您的解决方案完全可以。这是一个等效的:
filter(bool, \'aaa\'.split(\'a\'))
但是,可能不如列表理解那么明显。     
        不,没有更方便的方法。您可以编写自己的split函数,也可以删除空字符串。 但是您的解决方案看起来非常清晰和Pythonic。     
        尽管这并不是您所要的,但您可以使用ѭ10摆脱所有非唯一令牌:
>>> result
[\'\', \'\', \'\']
>>> set(result)
set([\'\'])
    

要回复问题请先登录注册