这段代码是如何排除掉None的
2 回答
已采纳
scarecrowcxc
TA贡献2条经验 获得超0个赞
楼上回答的挺详细,是根据函数的返回值来排除的: 这里还有个点就是:非布尔值的逻辑运算 1. 对于非布尔值进行逻辑运算(与和或),它是先将其转换为布尔值,然后做逻辑运算 2. 最终返回的是原值 例如:result = 'test' and 'str' # 返回 'str' result = 'str' and 'test' # 返回 'test' result = None and 'test' # 返回 None result = '' and 'test' # 返回 '' ( 例子中, 'test' 和 'str' 转换成布尔值都是True, 而 '' , None 转换成布尔值是False) 可以总结为 与运算是在找False, 或运算是在找True 对于 return s and len(s.strip()) > 0 s 和 表达式(len(s.strip()) > 0)在做非布尔值的逻辑运算 ,再结合楼上的回答,不知能否理解
pardon110
TA贡献1038条经验 获得超227个赞
filter语法
filter(function or None, sequence) -> list, tuple, or string
第一个参数是一个函数或None对象
第二个参数是个序列对象
返回列表,元组或者字符串
function会依次接收序列的元素作为参数,返回值为true的元素会被留下。
即将第二个参数中的每个元素作为参数依次传入is_not_empty函数,返回真值的元素留下。
添加回答
举报
0/150
提交
取消