回想下,在 Python 中编程时,你是否曾经需要检查某个可迭代对象(如列表)中的任何元素或所有元素的计算结果是否为True
?
假设,我们要判断数字列表a
的所有数字是否都大于0
,此时你估计会这么干:
a = [1, 2, 3, 4]
def is_big_0(l):
# 判断列表l的所有数字是否大于,如果大于0则返回True,否则返回False
for i in l:
if i <= 0:
return False
return True
print(a)
停顿几秒,想一想,假设下次我们要判断其他条件,如每个元素都是偶数或奇数?难道每次都要写一个函数然后for循环遍历吗?
其实python中有两个神奇的函数any()
和all()
,他们可以快速完成上面类似的任务!
接下来,我们将分享 Python 的 any()
和 all()
函数,并使用简单的示例来了解它们的工作原理。
在学习 any()
和 all()
之前,先快速回顾一下 Python 中的布尔数据类型。你可以在任何 Python 对象上调用
bool()
以获取其真假值。如下代码示例:
# None 的真假值是 False
print(bool(None))
# 输出 False
# 一个空字符串("")的真假值是 False
print(bool(""))
# 输出 False
# 一个空字符串或任何可迭代对象的真假值是 False
print(bool([]))
# 输出 False
# 0 {int (0), float (0.0) 和 complex (0j)} 的真假值是 False
print(bool(0))
# 输出 False
如上面的代码所示,可知:
None
的真假值为 False
0
)——整数、浮点数和 0
的复数表示——都是 False
False
。也就是说,所有非零值和非空可迭代对象都为True
,这是相当直观的。
请记住:所有非零值和非空可迭代对象都为True
,这是相当直观的!
让我们了