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))运行结果如下。
Falseany() 与 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