Python all() 函数

Python all() 语法

all() 是 Python 的一个内置函数,它用于判断一个可迭代对象中 “所有元素” 是否都为真值。如果全部都是真值,则返回 True;只要有一个不是真值,则返回 False。

在 Python 中,0、''、[]、{}、()、None、False 等都会被认为是假值(False),而非空值都会认为是真值(True)。

语法:

all(iterable)

说明:

all() 函数接收单个参数。

  • iterable(必选):是一个可迭代对象。像列表、元组、字符串等都是可迭代对象。

注意: 如果参数 iterable 是一个空对象(如 []、()、''、{}、set() 等),那么 all() 返回的是 True。

Python all() 摘要

使用频率
时间复杂度 O(1)(最好情况)、O(n)(最坏情况)
官方文档 查看
相关函数 any()bool()filter()map()

Python all() 示例

接下来,我们通过几个简单的例子来讲解一下 Python all() 函数是如何使用的。

示例 1:all() 用于列表

a = [1, 2, 3, 4, 5]
print(all(a))

b = [1, 2, 0, 4, 5]
print(all(b))

c = []
print(all(c))

运行结果如下。

True
False
True

分析:

需要注意的是,all() 判断的是列表的元素,而不是列表本身。初学的小伙伴很容易认为 all(c) 返回的是 False。

示例 2:all() 用于字符串

s1 = 'lvye'
print(all(s1))

s2 = '000'
print(all(s2))

s3 = ''
print(all(s3))

s4 = ' '
print(all(s4))

运行结果如下。

True
True
True
True

分析:

需要注意的是,字符串的每一个元素本质上是一个字符。对于 s2 来说,它的元素都是'0'(这是字符串而非数字 0),而 '0' 会被认为是 True。对于 s4 来说,它的元素是包含一个空格的字符 ' '(注意不是空字符 ''),而 ' ' 会被认为是 True。

示例 3:all() 用于字典

d = {0: 'Jack', 1: 'Lucy', 2: 'Tony'}
print(all(d))

运行结果如下。

False

分析:

当 all() 函数用于字典时,此时它判断的是字典的 “键” 是否为真,而不是字典的 “值” 是否为真。

all() 实现原理

all() 函数其实是一个快捷语法。当然了,我们也可以手动去实现一个 all() 函数,请看下面例子。

示例 4:手动实现 all() 的功能

def my_all(iterable):
    for item in iterable:
        if not item:
            return False
    return True

nums = [1, 2, 3, 4, 5]
print(my_all(nums))

运行结果如下。

True

all() 与 any() 的区别

all() 和 any() 这 2 个函数很相似,它们之间的区别如下。

  • all():只有所有元素都为真值(True),all() 才会返回 True。只要有一个元素为 False,那么它就会返回 False。
  • any():只有所有元素都为假值(False),any() 才会返回 False。只要有一个元素为 True,那么它就会返回 True。

示例 5:all() vs any()

data = [0, False, 5]
print(all(data))      # False(存在假值)
print(any(data))      # True(存在真值 5)

运行结果如下。

False
True

提示: all() 为短路操作,遇到第一个假值立即返回 False,适合用于处理大型可迭代对象。

上一篇: enumerate()

下一篇: any()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号