Python的any()和all()函数有什么不同?
发布时间:2023-06-25 01:24:52
Python中,any()和all()都是用于判断可迭代对象中是否存在值的函数。但是它们之间存在着一些不同之处。
1. 功能不同:
any()函数用于判断可迭代对象中是否存在任何一个值为True的元素。如果存在,返回True;否则返回False。
all()函数用于判断可迭代对象中的所有元素是否都为True。如果是,返回True;否则返回False。
2. 返回值不同:
如果可迭代对象为空,any()函数将返回False,而all()函数将返回True。
如果可迭代对象不为空,则根据条件进行判断:
any()函数仅需找到一个元素为True即可停止迭代并返回True;当可迭代对象中的所有元素均为False时,any()函数将返回False。
all()函数则需要将所有元素都检查一遍,只有当所有元素均为True时才停止迭代并返回True;当可迭代对象中的任何一个元素为False时,all()函数将返回False。
以下是一个示例:
lst = [True, False, True, False]
print(any(lst)) # True - 因为列表中至少有一个元素为True
print(all(lst)) # False - 因为列表中有一个元素为False
lst = [False, False, False]
print(any(lst)) # False - 因为列表中所有元素均为False
print(all(lst)) # False - 因为列表中有一个元素为False
lst = []
print(any(lst)) # False - 因为列表为空
print(all(lst)) # True - 因为列表为空,所有元素都为True
