需要使用过滤器从给定字符串中删除空格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要使用过滤器从给定字符串中删除空格相关的知识,希望对你有一定的参考价值。

我的印象是以下代码:

filter(None,"Stack Overflow")

会回来:

"StackOverflow"

但是当我使用Python(2.7)时没有发生这种情况。谁能告诉我为什么会这样?

答案

您似乎想要过滤掉空间,但是空间不是FalseNone搜索的),因此请明确检查空间:

filter(lambda x: x!=' ',"Stack Overflow")

此外,如果您只处理字符串,请不要忘记replace

"Stack Overflow".replace(' ', '')
另一答案

filter国家的帮助

返回函数(item)为true的序列项。如果function为None,则返回true的项。

空格的布尔值是True,因此不会被删除。

另一答案

您需要定义一个替换''的函数:

filter(lambda x: x != ' ', 'Stack Overflow')

请参阅filter的文档。

当没有指定函数时,它只是比较元素是否是真实的,这是''以及任何其他字符的情况。为了更好地理解,请参阅此示例,其中None是一个假值,因此从列表中删除:

filter(None, ['S', 't', 'a', 'c', 'k', None, 'O', 'v', 'e', 'r', 'f', 'l', 'o', 'w'])

以上是关于需要使用过滤器从给定字符串中删除空格的主要内容,如果未能解决你的问题,请参考以下文章

从整个 Html 中删除空格,但在 pre 中使用正则表达式

从单个字符串中提取字符串,然后删除空格

从列中删除逗号,空格和“NULL”字符串为0(零)

从字符串值中删除空格(前导和尾随)

比较 C# 中的字符串片段并从集合中删除项目

python 删除给定字符串的空格或新行