我们可能在程序开发中会面对这样一个问题?
怎样判断一个可迭代对象中元素是否全部为真,我们的做法可能就是for..in遍历然后通过bool()函数进行判断,其实这种做法可行,但是对代码而言有些冗余,因此,给大家介绍一种极其简单的方法
内置函数all()
先看一下源码

def all(*args, **kwargs): # real signature unknown
    """
    Return True if bool(x) is True for all values x in the iterable.
    
    If the iterable is empty, return True.
    """
    pass

接下来我们享受一下这种方法的便捷

my_list=['jim','rose','','sam']
print(all(my_list)) #返回结果:False
print(all([]))#返回结果:True

python还内置了一个函数any(),用来判断其可迭代对象中是否有bool()为真的元素
源码

def any(*args, **kwargs): # real signature unknown
    """
    Return True if bool(x) is True for any x in the iterable.
    
    If the iterable is empty, return False.
    """
    pass

实例测验

    my_list=['jim','rose','','sam']
    print(any(my_list)) #返回结果:True
    print(any([]))#返回结果:False

总结:
all()有假则假,any()有真则真,但不要认为all(iterable)为True,则any就一定为True,一定要知道如果iterable为空,all也会返回True
附一张图,谁看谁幸运:

clipboard.png


二十一
1.4k 声望867 粉丝

无论遇到多大的困难,你总是能扛过去,坚持一件事,对自己