python内置函数all可用于判断传入的可迭代参数 iterable 中的所有元素是否都为True,如果是则返回True,反之返回False。如果可迭代对象是空的,也会返回True。
在判断元素是否为True时,只要元素不是0、空、None、False,就视为True。
all() 函数接受一个可迭代对象作为参数,仅当可迭代对象中的所有项的计算结果为 True,或可迭代对象为空时才返回 True。在所有其他情况下,all() 函数返回 False。如果列表中所有元素都为True,则返回True;否则有一个为False,就返回False。
语法结构:
all(iterable)
- 如果 bool(x) 对于可迭代对象中的所有值 x 为 True,则返回 True。
- 如果可迭代对象为空,则返回 True
all()源码解析:
def all(*args, **kwargs): # real signature unknown
"""
Return True if bool(x) is True for all values x in the iterable.
If the iterable is empty, return True.
"""
pass
示例代码1:
print(all([True, 4, 7])) # True
print(all((True, False))) # False, 因为有一个元素不是True
print(all([])) # True
运行结果:
注意:如果传入的是一个空列表或者空元组,all函数会返回True。
示例代码2: 【使用all()函数检查字符串中的字母】
my_string = "coding**is**cool"
are_all_letters = [char.isalpha() for char in my_string]
print(are_all_letters)
print(all(are_all_letters))
my_string = "coding"
are_all_letters = [char.isalpha() for char in my_string]
print(are_all_letters)
print(all(are_all_letters))
运行结果:
示例代码3: 【使用Pythonall()函数用逻辑 AND 组合多个条件】
a, b, c, d = False, False, True, False
if a and b and c and d:
print(True)
else:
print(False)
# 将a, b, c, d放到一个可迭代对象中,如列表list
lst = [a, b, c, d]
# 使用all()
if all(lst):
print(True)
else:
print(False)
e, f = True, True
lst2 = [e, f]
if all(lst2):
print(True)
else:
print(False)
运行结果: