在 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

请注意 ,如果传入的可迭代对象为空,则 all() 函数会针对任何条件返回 True

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')

我们使用了 and 布尔运算符,因此要运行 if 块,必须满足两个条件。

该列表的长度不大于 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 值。