猿问

python初级问题2

这段代码是如何排除掉None的

慕无忌0492270
浏览 1149回答 2
2回答

scarecrowcxc

楼上回答的挺详细,是根据函数的返回值来排除的:             这里还有个点就是:非布尔值的逻辑运算                     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

filter语法filter(function or None, sequence) -> list, tuple, or string第一个参数是一个函数或None对象第二个参数是个序列对象返回列表,元组或者字符串function会依次接收序列的元素作为参数,返回值为true的元素会被留下。即将第二个参数中的每个元素作为参数依次传入is_not_empty函数,返回真值的元素留下。
随时随地看视频慕课网APP

相关分类

Python
我要回答