python中all()和any()函数总结

all(iterable):iterable---元组或列表

这个函数可能会有点坑,解释如下:

    判断给定的可迭代参数iterable中的所有元素是否都为True,如果是返回True,否则返回False。 注意:元素是0、空(空元素、不是空数组或空列表,空数组也是True)、None、False外都算True。

返回值:

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

注意:空元组、空列表返回值为True。

实例:

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

any(iteable)

返回值:

如果iterable所有的值都是0、""、或False时,结果为False,如果所有元素中有一个值为非0、非""或者True,那么结果就是True

相当于:

def any(iterable):
    for element in iterable:
        if element:
            return True

示例:

>>> any([a, b, c, d])  #列表list,元素都不为空或0
 2 True
 3  
 4 >>> any([a, b, , d])  #列表list,存在一个为空的元素
 5 True
 6  
 7 >>> any([0, , False])  #列表list,元素全为0,,false
 8 False
 9  
10 >>> any((a, b, c, d))  #元组tuple,元素都不为空或0
11 True
12  
13 >>> any((a, b, , d))  #元组tuple,存在一个为空的元素
14 True
15  
16 >>> any((0, , False))  #元组tuple,元素全为0,,false
17 False
18   
19 >>> any([]) # 空列表
20 False
21  
22 >>> any(()) # 空元组
23 False
经验分享 程序员 微信小程序 职场和发展