玩命加载中 . . .

python any() 与 all() 函数介绍


概述

最近碰到python的一个知识点盲区(any 与 all 函数相关),基础知识没有扎实,这里记录一下python的any 与 all 函数,填补一下部分盲区。

简单理解

all() 函数: 全部为真,一假为假

any() 函数:一真为真,全假为假

for循环的any()函数

使用生成器表达式动态地创建一个迭代,并将其传递到 any() 函数中。这可以称为 “带有for循环的any()函数”。

>>> print(any(x**2 == 16 for x in range(10)))
True
>>>

上面举例代码使用的条件是x**2==16,它只对x=4有效。

当通过使用range()函数将这个表达式应用于从0到9(包括)的所有x值时,它大多返回False。由于短路,any()函数在评估第五个元素x=4后返回True。

all() 函数

描述

all() 函数用于判断给定的可迭代参数iterable中的所有元素是否都为True,如果是则返回True,否则返回False。

元素除了0,空,None,False外,都算True。

语法

all(iterable)

返回值

如果iterable的所有元素不为 0, ‘’, False或者iterable为空,all(iterable) 返回True,否则返回False。

注意:

​ 空元组,空列表返回True,这里需要特别注意。

示例

>>> all(['a', 'b', 'c'])   # 列表list,元素都不为空或0
True
>>> all(['a', 'b', ''])    # 列表list,存在一个为空的元素
False
>>> all([0,1,2,3])         # 列表list,存在一个为0的元素
False
>>> all(('a', 'b', ''))    # 元组tuple,存在一个为空的元素
False
>>> all(('a', 'b', 'c'))   # 元组tuple,元素不存在为空或0的元素
True
>>> all((0,1,2,3))         # 元组tuple,元素存在一个为0的元素
False
>>> all([])                # 空列表list
True
>>> all(())                # 空元组tuple
True
>>>

any() 函数

描述

any() 函数用于判断给定的可迭代参数iterable是否全部为false,则返回False;如果有一个为True,则返回True。

语法

any(iterable)

返回值

如果都为空,0, false,则返回False;如果不都为空,0,False,则返回True。

示例

>>> any((['a', 'b', 'c']))     # 列表list,元素都不为空或0
True
>>> any((['a', 'b', '']))      # 列表list,存在一个为空的元素
True
>>> any([0, '', False])        # 列表list,全部为0, '', False
False
>>> any((('a', 'b', 'c')))     # 元组tuple,元素都不为空或0
True
>>> any((('a', 'b', '')))      # 元组tuple,存在一个为空的元素
True
>>> any((0, '', False))        # 元组tuple,全部为0, '', False
False
>>> any([])                    # 空列表list 
False
>>> any(())                    # 空元组tuple
False
>>>

文章作者: Gavin Wang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Gavin Wang !
  目录