请问这段删除list中空字符串的python代码中的filter是咋起作用的( 二 )


其次,and返回的值。如果都是真,返回右边的,如果有一个假,返回假。举例,\u0026gt;\u0026gt;\u0026gt; \u0026#39;a\u0026#39; and \u0026#39;b\u0026#39;
\u0026#39;b\u0026#39;
\u0026gt;\u0026gt;\u0026gt; \u0026#39;\u0026#39; and \u0026#39;b\u0026#39;
\u0026#39;\u0026#39;(空也就是假)
回到廖雪峰的例子,直接用lambda更简洁。
print(list(filter(lambda x: x and x.strip(), )))
遇到第一个空字符串,and返回的是假,遇到多个空格,and返回的是真,而且返回右边的数值,也就是空格.strip(),结果又变成了空(假的),所以删除了。
不过他的这个表达式如果遇到数字就完蛋了。我用正则修改了一下,不管数字还是其他都能处理掉。
print(list(filter(lambda x: x and re.sub(\u0026#39;\\s\u0026#39;,\u0026#39;\u0026#39;,x), )))


推荐阅读