从Python列表中删除空字符串

Den*_*nis 2 python regex split

我需要分割一个字符串。我正在使用这个:

\n\n
def ParseStringFile(string):\np = re.compile(\'\\W+\')\nresult = p.split(string)\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我有一个错误:我的结果有两个空字符串 (\'\'),一个位于 \'\xd0\x9b\xd0\xb5\xd0\xb2\' 之前。我该如何摆脱它们?

\n\n

在此输入图像描述

\n

Sla*_*off 5

正如 nhahtdh 指出的,空字符串是预期的,因为\n字符串的开头和结尾都有一个,但如果它们打扰你,你可以filter非常快速有效地使用它们。

>>> filter(None, ['', 'text', 'more text', ''])
['text', 'more text']
Run Code Online (Sandbox Code Playgroud)

filter通常采用可调用函数作为第一个参数,并创建一个列表,其中删除了所有function(element)返回的元素False。这里给出了,它会触发一个特殊情况:如果为 false,None则删除该元素。bool(element)因为bool('')是假的,所以它被删除了。

另请参阅手册