Python 中的 all()
函数
all()
是 Python 的一个内置函数,用于判断一个可迭代对象中 所有元素是否都为真(True
)。它在布尔逻辑中对应的是“与”操作。
1. 基本语法
all(iterable)
参数说明
iterable
:任意可迭代对象(如:list
、tuple
、set
、dict
、str
、生成器等)。- 返回值:
True
:如果所有元素都为真;False
:只要有一个元素为假。
2. 示例用法
2.1 所有元素为真
print(all([1, 2, 3])) # True
2.2 包含一个假值
print(all([1, 0, 3])) # False,因为 0 为假
2.3 空序列
print(all([])) # True
- 注意:
all([])
返回True
,因为“对空集合做‘与’运算恒为真”是逻辑上成立的。
3. 真值与假值判断标准
在布尔上下文中,Python 认为以下是“假”(False):
0
,0.0
False
''
(空字符串)[]
,{}
,()
(空容器)None
其他值都为“真”(True)。
print(all(["", "abc"])) # False
print(all(["abc", "def"])) # True
4. 与 any()
对比
函数 | 描述 | 示例 |
---|---|---|
all() | 全部为真 → True | all([1, 2, 3]) → True |
any() | 任一为真 → True | any([0, 0, 1]) → True |
5. 搭配生成器使用(高效)
nums = [2, 4, 6, 8]
# 检查所有数是否为偶数
print(all(n % 2 == 0 for n in nums)) # True
- 优点:短路逻辑,一旦检测到为假就停止迭代,性能更好。
6. 实际应用场景
6.1 表单字段检查
fields = ["name", "email", "password"]
filled = ["Alice", "alice@example.com", "123456"]
if all(filled):
print("表单填写完整")
6.2 条件验证
conditions = [age > 18, has_id_card, not is_blacklisted]
if all(conditions):
print("允许注册")
7. 在字典中使用
默认判断的是 键:
d = {1: "a", 0: "b"}
print(all(d)) # False,因为包含键 0(假)
判断值可这样写:
print(all(d.values())) # 取值列表判断
8. 总结
特性 | 说明 |
---|---|
函数名 | all() |
输入 | 可迭代对象 |
返回 | True (全部为真)或 False |
常见组合 | list 、generator 、布尔判断 |
空序列返回 | True |
all()
是 Python 中非常实用的逻辑判断函数,常用于 验证条件是否全部满足、数据清洗、过滤等场景,代码简洁、语义清晰。