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剃掉了。。