欢迎访问宙启技术站
智能推送

Python中的all和any函数-确定列表元素是否全部为真或存在任意一个为真

发布时间:2023-06-15 01:07:28

Python中内置的all和any函数都是用来判断一组值的真假情况。

all函数接收一个可迭代的对象作为参数,然后返回True或False,这个返回值表示所传入的可迭代对象中的所有元素是否全部都为真。如果所有元素都为真,则返回True,否则返回False。以下是all函数的用法:

a = [True, True, False]
b = [1, 2, 3, 0]
c = []
print(all(a))    # False
print(all(b))    # False
print(all(c))    # True

上面代码中,a和b是两个列表,其中a中有一个元素为False,b中有一个元素为0(代表False),因此调用all函数返回的结果都是False。而空列表c中没有元素,因此调用all函数返回的结果是True。

any函数的作用和all函数类似,只不过any函数会判断传入的可迭代对象中是否存在至少一个元素为真。如果存在至少一个元素为真,则返回True,否则返回False。以下是any函数的用法:

a = [True, True, False]
b = [1, 2, 3, 0]
c = []
print(any(a))    # True
print(any(b))    # True
print(any(c))    # False

上面代码中,a和b是两个列表,其中a中有两个元素为True,b中有三个元素不为0(代表True),因此调用any函数返回的结果都是True。而空列表c中没有元素,因此调用any函数返回的结果是False。

需要注意的是,all和any函数只能判断可迭代的对象中的元素的真假情况,不能判断其他类型的对象。如果需要判断其他类型的对象的真假情况,可以使用bool函数将其转换为布尔值,然后再传给all或any函数。

例如,对于数字类型的对象,可以使用bool函数将非零值转换为True,0值转换为False。对于字符串类型的对象,可以使用bool函数将非空字符串转换为True,空字符串转换为False。以下是一个例子:

a = [1, 2, 3, 0]
b = ["", "123", "456"]
print(all(bool(x) for x in a))    # False
print(any(bool(x) for x in b))    # True 

上面代码中,a列表中有一个元素为0,因此使用bool函数转换后再调用all函数的结果为False。而b列表中有一个非空字符串,因此使用bool函数转换后再调用any函数的结果为True。