Python all() 函数详解
all() 用于判断可迭代对象中是否所有元素均为真值,核心行为如下:
- 基本逻辑
当可迭代对象所有元素为真(非零、非空、非
False)时返回True若存在任一假值元素或对象为空时返回
False-
等价实现:
def all(iterable): for element in iterable: if not element: return False return True
- 典型用例
检测全为真值
print(all([1, "a", True])) True
print(all([1, 0, "text"])) False(存在0)
空迭代对象返回True
print(all([])) True
- 特殊场景处理
| 输入类型 | 返回值 | 说明 |
|-------------------------|---------|---------------------------|
| 含假值 [1, "", True] | False | 空字符串 "" 为假 |
| 嵌套对象 [[1], []] | False | 空列表 [] 为假 |
| 全真值 ["A", 5, [0]] | True | 非空列表 [0] 视为真值 |
- 与
any()对比
| 函数 | 全真返回 | 存在真值返回 | 空迭代返回 |
|---------|----------|--------------|------------|
| all() | True | False | True |
| any() | True | True | False |
- 实用技巧
-
条件验证:检查多个条件同时成立
conditions = [x > 0 for x in [3, 5, 7]] if all(conditions): print("所有数值均为正数") -
数据清洗:筛选有效数据集
data = [{"name": "Alice", "age": 30}, {"name": "", "age": 25}] valid_data = [d for d in data if all(d.values())] 剔除含空值的项
注意:
- 对生成器同样适用(如
all(x > 0 for x in [1, 2, -3])返回False)
- 假值包含:
False,0,"",None,[],{},()等