为了账号安全,请及时绑定邮箱和手机立即绑定

is_not_empty返回None的时候,filter作何处理?

有个不明白的地方:filter函数在处理列表时,如果is_not_empty返回的既不是True,也不是False,而是None时,会把None看作与False等价么?

>>> def is_not_empty(s):
	    return s and len(s.strip()) > 0
>>> list(filter(is_not_empty, ['test', None, '', 'str', '  ', 'END']))
['test', 'str', 'END']

这个例子的结论好像是这样的。下面的测试显示,给is_not_empty传入None时,返回的也是None

>>> s = ['abc', None]
>>> is_not_empty(s[0]), is_not_empty(s[1])
(True, None)

第一段code显示filter返回的list里把None剃掉了。。

正在回答

1 回答

python对Node,空白字符,都认为是false,所以Node返回-1过滤掉了

0 回复 有任何疑惑可以回复我~
#1

iceham 提问者

谢谢~ 在 Python入门3-9节布尔类型 找到答案了
2015-05-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

is_not_empty返回None的时候,filter作何处理?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信