Python 中 all() 函数是什么意思?怎么用?

all() 判断可迭代对象的所有元素是否都为真:全真返回 True,有一个假就 False,空 iterable 返回 True。常与生成器表达式配合做条件检查。本文详解用法。

最佳实践
Python 中 all() 函数是什么意思?怎么用?封面

all(iterable):所有元素都为真(truthy)时返回 True,任意一个为假即返回 False;空可迭代对象返回 True。常与生成器表达式配合做"是否全部满足某条件"的判断。

基本用法

all([True, True, True])    # True
all([True, False, True])   # False
all([])                    # True(空——注意这个行为)

与生成器配合(最常用)

numbers = [2, 4, 6, 8]

# 是否全是偶数
all(x % 2 == 0 for x in numbers)   # True

# 是否都大于 0
all(x > 0 for x in numbers)        # True

生成器写法是惰性的——遇到第一个 False 就停止(短路),不用先构造整个列表。

什么算"假值"

False00.0''[]{}Noneset() 都是假值:

all([1, 'a', [0]])   # True
all([1, 'a', 0])     # False——0 是假值

对应的 any()

any([False, True])   # True——任一为真即 True
any([])              # False(注意与 all 的空值行为相反)

实际应用

# 校验表单所有字段都填写了
fields = [name, email, phone]
if not all(fields):
    print("有字段为空")

# 检查所有测试用例通过
all(case.passed for case in cases)

常见问题(FAQ)

Q:为什么空列表 all() 返回 True?
A:这是数学上"空真"(vacuous truth)约定:"所有元素满足条件"在没有反例时成立。逻辑上自洽,但写代码时注意空集合可能让校验"意外通过"。

Q:all 和 and 有什么区别?
A:and 返回操作数(最后一个真值或第一个假值),all() 返回布尔值且作用于可迭代对象。

Q:大数据集用 all 快吗?
A:配合生成器是 O(最短路径)——第一个 False 就返回,很快;如果先构造列表再 all,就多了一次完整遍历的内存开销。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台