在 Python 中检查列表中的所有元素是否为真

使用 all() 函数检查列表中的所有元素是否为真,例如 if all(item is True for item in my_list):。 如果列表中的所有值都等于 True,则 all() 函数将返回 True,否则返回 False。

my_list = [True, True, True]

if all(item is True for item in my_list):
    # ?️ this runs
    print('All list elements are True')
else:
    print('Not all list elements are True')


# ?️ True
print(all(item is True for item in my_list))

我们使用生成器表达式来遍历列表。

在每次迭代中,我们检查当前值是否等于 True 并返回结果。

all() 内置函数将可迭代对象作为参数,如果可迭代对象中的所有元素都为真(或可迭代对象为空),则返回 True。

my_list = [True, True, True]

# ?️ True
print(all(item is True for item in my_list))

如果 all() 函数发现一个不等于 True 的值,它将短路返回 False。

my_list = []

if all(item is True for item in my_list):
    # ?️ this runs
    print('All list elements are True')
else:
    print('Not all list elements are True')

# ?️ True
print(all(item is True for item in my_list))

如果我们考虑一个并非所有值都为 True 的空列表,请检查列表的长度。

my_list = []

if len(my_list) > 0 and all(item is True for item in my_list):
    print('All list elements are True')
else:
    # ?️ this runs
    print('Not all list elements are True')

该列表的长度不大于 0,因此运行 else 块。

或者,我们可以使用 list.count() 方法。

检查列表中的所有值是否为真:

  1. 使用 list.count() 方法计算列表中的真值。
  2. 如果 True 值的数量等于列表的长度,则列表中的所有值都是 True。
my_list = [True, True, True]

if my_list.count(True) == len(my_list):
    # ?️ this runs
    print('All list elements are True')
else:
    print('Not all list elements are True')

list.count() 方法接受一个值并返回所提供的值在列表中出现的次数。

my_list = [True, True, True]

print(my_list.count(True))  # ?️ 3

如果列表中 True 值的数量与列表的长度相同,则该列表仅包含 True 值。