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

python初级问题2

python初级问题2

慕无忌0492270 2018-12-16 12:49:46
这段代码是如何排除掉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)在做非布尔值的逻辑运算 ,再结合楼上的回答,不知能否理解


查看完整回答
反对 回复 2018-12-20
?
pardon110

TA贡献1038条经验 获得超227个赞

filter语法

filter(function or None, sequence) -> list, tuple, or string

第一个参数是一个函数或None对象

第二个参数是个序列对象

返回列表,元组或者字符串

function会依次接收序列的元素作为参数,返回值为true的元素会被留下。

即将第二个参数中的每个元素作为参数依次传入is_not_empty函数,返回真值的元素留下。

查看完整回答
1 反对 回复 2018-12-16
  • 慕无忌0492270
    慕无忌0492270
    谢谢你的问题,但我不是不知道filter函数的用法,是不知道他的函数内部是如何判断None和空字符串的
  • pardon110
    pardon110
    回调函数的返回值为true元素留下
  • 2 回答
  • 0 关注
  • 1123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信