Python any()和all()进行规约

  • Post category:Python

当我们需要判断一个可迭代对象中是否有一个或多个元素满足某个条件,或者是否所有元素都满足某个条件时,比较常见的方法是使用 Python 内置函数 any()all()

any()

any() 函数接收一个可迭代对象作为参数,如果可迭代对象中任意一个元素满足条件,则返回 True,否则返回 False

下面是 any() 函数的语法格式:

any(iterable)

示例:

fruits = ['apple', 'banana', 'orange', 'grape']
has_orange = any(fruit == 'orange' for fruit in fruits)
print(has_orange)   # True

上述示例中,我们使用迭代器生成器作为 any() 函数的参数,并通过一个简单的表达式检查是否存在某个元素。由于 fruits 列表中有一个元素等于 ‘orange’,因此返回 True

all()

all() 函数接收一个可迭代对象作为参数,如果可迭代对象中所有元素都满足条件,则返回 True,否则返回 False

下面是 all() 函数的语法格式:

all(iterable)

示例:

nums = [10, 20, 30, 40, 50]
all_nums_gt_5 = all(num > 5 for num in nums)
print(all_nums_gt_5)   # True

some_nums_gt_20 = all(num > 20 for num in nums)
print(some_nums_gt_20)   # False

上述示例中,第一个 all() 函数会检查列表中所有元素是否大于 5,由于所有元素都满足条件,因此返回 True

第二个 all() 函数则检查列表中所有元素是否大于 20,由于有两个元素小于等于 20,因此返回 False