Python all() 函数
all() 是 Python 中用于判断可迭代对象中所有元素是否都为真的内置函数。
all() 会遍历可迭代对象中的所有元素,如果所有元素的布尔值都为 True,则返回 True;否则返回 False。如果可迭代对象为空,也返回 True。
单词释义: all 意为"所有",表示"所有元素都为真"的意思。
基本语法与参数
语法格式
all(iterable)
参数说明
- 参数 iterable:
- 类型: 可迭代对象(列表、元组、集合、字典、字符串等)
- 描述: 要检查的可迭代对象。
函数说明
- 返回值: 返回布尔值
True或False。 - 空迭代: 空的可迭代对象返回
True(这是数学上的约定)。
实例
示例 1:基础用法
实例
# 列表全为 True
print(all([True, True, True])) # 输出: True
# 列表中有 False
print(all([True, False, True])) # 输出: False
# 列表全为非零数字
print(all([1, 2, 3])) # 输出: True
print(all([1, 0, 3])) # 输出: False
# 空列表
print(all([])) # 输出: True
print(all([True, True, True])) # 输出: True
# 列表中有 False
print(all([True, False, True])) # 输出: False
# 列表全为非零数字
print(all([1, 2, 3])) # 输出: True
print(all([1, 0, 3])) # 输出: False
# 空列表
print(all([])) # 输出: True
运行结果预期:
True False True False True
代码解析:
- 所有元素都为真(非零、非空、非 None)时返回 True。
- 只要有一个元素为假,就返回 False。
- 空列表返回 True(这是 Python 的约定)。
示例 2:其他可迭代对象
实例
# 元组
print(all((1, 2, 3))) # 输出: True
print(all((1, 0, 3))) # 输出: False
# 集合
print(all({1, 2, 3})) # 输出: True
print(all({1, 0, 3})) # 输出: False
# 字典(检查键)
print(all({"a": 1, "b": 2})) # 输出: True
print(all({"": 1})) # 输出: False(空键为假)
# 字符串
print(all("hello")) # 输出: True
print(all("")) # 输出: True(空字符串)
# 生成器
gen = (x > 0 for x in [1, 2, 3])
print(all(gen)) # 输出: True
print(all((1, 2, 3))) # 输出: True
print(all((1, 0, 3))) # 输出: False
# 集合
print(all({1, 2, 3})) # 输出: True
print(all({1, 0, 3})) # 输出: False
# 字典(检查键)
print(all({"a": 1, "b": 2})) # 输出: True
print(all({"": 1})) # 输出: False(空键为假)
# 字符串
print(all("hello")) # 输出: True
print(all("")) # 输出: True(空字符串)
# 生成器
gen = (x > 0 for x in [1, 2, 3])
print(all(gen)) # 输出: True
运行结果预期:
True False True False True False True True True
代码解析:
- 元组、集合的使用方式与列表相同。
- 字典检查的是键,而不是值。
- 字符串中每个字符的 ASCII 码都不为 0,所以非空字符串返回 True。
示例 3:实际应用
实例
# 验证用户输入
def validate_user(user):
required_fields = ['username', 'email', 'password']
return all(user.get(field) for field in required_fields)
user1 = {'username': 'tom', 'email': '[email protected]', 'password': '123'}
user2 = {'username': 'tom', 'email': '', 'password': '123'}
print(validate_user(user1)) # 输出: True
print(validate_user(user2)) # 输出: False
# 检查所有数字为正
numbers = [1, 2, 3, 4, 5]
print(all(x > 0 for x in numbers)) # 输出: True
numbers = [1, -2, 3]
print(all(x > 0 for x in numbers)) # 输出: False
# 检查列表是否包含特定元素
colors = ['red', 'green', 'blue']
required = ['red', 'blue']
print(all(c in colors for c in required)) # 输出: True
def validate_user(user):
required_fields = ['username', 'email', 'password']
return all(user.get(field) for field in required_fields)
user1 = {'username': 'tom', 'email': '[email protected]', 'password': '123'}
user2 = {'username': 'tom', 'email': '', 'password': '123'}
print(validate_user(user1)) # 输出: True
print(validate_user(user2)) # 输出: False
# 检查所有数字为正
numbers = [1, 2, 3, 4, 5]
print(all(x > 0 for x in numbers)) # 输出: True
numbers = [1, -2, 3]
print(all(x > 0 for x in numbers)) # 输出: False
# 检查列表是否包含特定元素
colors = ['red', 'green', 'blue']
required = ['red', 'blue']
print(all(c in colors for c in required)) # 输出: True
运行结果预期:
True False True False True
all() 常用于数据验证、条件检查等场景,可以使代码更加简洁和 Pythonic。
Python3 内置函数
点我分享笔记