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。
