一、概述
any()
和 all()
是 Python 中的内置函数,它们分别用于测试可迭代对象(如列表、元组、集合等)中的元素是否满足某个条件。
二、any()
any()
函数接受一个可迭代对象作为参数,并返回一个布尔值。如果可迭代对象中的任何一个元素满足指定的条件(即返回 True
),则 any()
函数返回 True
。如果所有元素都不满足条件(即返回 False
),则 any()
函数返回 False
。
例如:
numbers = [0, 1, 2, 3, 4]
# 使用 any() 测试是否存在正数
print(any(number > 0 for number in numbers))
# 使用 any() 测试是否存在负数
print(any(number < 0 for number in numbers))
# 执行结果
True
False
三、all()
all()
函数也接受一个可迭代对象作为参数,并返回一个布尔值。如果可迭代对象中的所有元素都满足指定的条件(即返回 True
),则 all()
函数返回 True
。如果任何一个元素不满足条件(即返回 False
),则 all()
函数返回 False
。
例如:
numbers = [1, 2, 3, 4, 5]
# 使用 all() 测试所有数字是否都大于 0
print(all(number > 0 for number in numbers))
# 使用 all() 测试所有数字是否都小于 5
print(all(number < 5 for number in numbers))
# 执行结果
True
False
四、注意事项
-
如果没有提供任何可迭代对象,
any()
和all()
函数都返回False
。 -
对于空的可迭代对象,
any()
函数返回False
,而all()
函数返回True
。 -
any()
和all()
函数都使用短路求值(short-circuit evaluation)。这意味着如果any()
函数在迭代过程中找到了第一个满足条件的元素,它就会立即返回True
,而不会继续检查剩余的元素。同样,如果all()
函数在迭代过程中遇到了第一个不满足条件的元素,它就会立即返回False
,而不会继续检查剩余的元素。
may the odds be ever in your favor ~