说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python 内置函数 all() 的作用是,如果传入的可迭代对象的所有元素均为真值(或可迭代对象为空)则返回 True。它与 any()有着不同的逻辑。
它的语法形式为:
all(iterable)
函数接受单个参数:
all() 函数中如果给定 iterable (可迭代对象)中的所有元素:
注:元素除了是 0、空、None、False 外都算 True,可参考布尔值的取值逻辑。空元组、空列表返回值为True,要特别注意。
等价于:
def all(iterable):
for element in iterable:
if not element:
return False
return True
以下是 all() 返回值参照表:
情况 | 返回值 |
---|---|
所有值为 true | True |
所有值为 false | False |
一个值为 true (其他为 false) | False |
一个值为 false (其他为 true) | False |
空的可迭代对象 | True |
字符串(包括空串) | True |
字典所有键为 true | True |
字典一个键为 false | False |
注:对于字典,如果所有键(不是值)都为 true 或字典为空,则 all() 返回 true。否则,对于所有其他情况,它将返回 false。
以下是一些案例:
# 所有值为 true
iterable = [1, 2, 3, 4]
all(iterable) # True
# 所有值为 false
iterable = [0, False]
all(iterable) # False
# 一个为 true
iterable = [0, False, 1]
all(iterable) # False
# 一个为 false
iterable = [1, 3, 4, 0]
all(iterable) # False
# 空对象
iterable = ()
all(iterable) # True
# 字符串
iterable = 'Hello'
all(iterable) # True
# 字典
d = {0: 'False', 1: 'False'}
all(d) # False
all([False, None, 0, 0.0, 0 + 0j, '', [], {}, ()])
# True
not all([False, False, False])
# False
not all([True, False, False])
# True
# 列表推导式
l = [0, 1, 2, 3, 4]
all([i > 2 for i in l])
# False
any([i > 2 for i in l])
# True
# 可以直接在生成器上使用,比列表快很多
(i > 2 for i in l)
# <generator object <genexpr> at 0x7fe33e7e3dd0>
all(i > 2 for i in l)
# False
any(i > 2 for i in l)
# True
更新时间:June 16, 2021, 4:37 p.m. 标签:python all