Python any() 函数

Python any() 语法

any() 是 Python 的一个内置函数,它用于判断一个可迭代对象中是否 “至少存在一个” 元素为真值。如果至少存在一个元素为真值,则返回 True;只有所有元素都为假值,才会返回 False。

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

语法:

any(iterable)

说明:

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

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

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

Python any() 摘要

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

Python any() 示例

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

示例 1:any() 用于列表

a = [1, 2, 0, 4, 5]
print(any(a))

b = [0, '', None]
print(any(b))

c = []
print(any(c))

运行结果如下。

True
False
False

分析:

需要注意的是,any() 判断的是列表的元素,而不是列表本身。对于空列表 c 来说,由于其中没有任何为真的元素,所以 any(c) 自然返回 False。

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

s1 = 'lvye'
print(any(s1))

s2 = '000'
print(any(s2))

s3 = ''
print(any(s3))

s4 = ' '
print(any(s4))

运行结果如下。

True
True
False
True

分析:

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

示例 3:any() 用于字典

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

运行结果如下。

True

分析:

当 any() 用于字典时,此时它判断的是所有的 “键”,而不是 “值”。

any() 实现原理

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

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

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

lst = [0, '', None]
print(my_any(lst))

运行结果如下。

False

any() 与 all() 的区别

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

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

示例 5:any() vs all()

data = [0, False, 5]
print(any(data))
print(all(data))

运行结果如下。

True
False

上一篇: all()

下一篇: iter()

给站长反馈

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

邮箱:lvyenet@vip.qq.com

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