Python 如何检查if语句中可变长度列表的元素

Python 如何检查if语句中可变长度列表的元素,python,list,if-statement,Python,List,If Statement,我是python新手 我有一张旗帜的清单。这个列表的长度是可变的。我想检查列表中的所有变量是否都是真的 我试过了 if (all in flags[x]==True): finalFlags[x-1]=True 但当只有一个标志为真时,最终的标志变为真 finalFlags = False if all(flags): finalFlags=True 编辑:根据Chris的评论简化: finalFlags = all(flags) 由于您没有发布示例,我可以这样假

我是python新手

我有一张旗帜的清单。这个列表的长度是可变的。我想检查列表中的所有变量是否都是真的

我试过了

    if (all  in flags[x]==True):
    finalFlags[x-1]=True
但当只有一个标志为真时,最终的标志变为真

finalFlags = False
if all(flags):
    finalFlags=True
编辑:根据Chris的评论简化:

finalFlags = all(flags)

由于您没有发布示例,我可以这样假设:

my_flags = [True, False, True, True, True, False]

valid_flags = 0
for flag in my_flags:
    if flag == True:
        valid_flags += 1

if len(my_flags) == valid_flags:
     print("Total match")
else:
     print("Matched ", valid_flags, " out of ", len(my_flags))

所有和任何函数都可用于检查列表中的布尔值

test_list = []
如果iterable的所有元素都被视为真值(如reduce(operator.and_u,iterable)),则all(iterable)返回True

如果iterable中至少有一个元素是真值(同样,使用函数填充,reduce(operator.or,iterable)),则any(iterable)返回True

当您需要检查所有值是否为真时,您可以使用all()函数,如下所示

all(test_list) #will return true

此外,您可以使用any()检查所有为true的值,但此时,您需要将列表元素从true转换为false,并检查是否存在任何true,我们可以说原始列表中存在false,并且在出现任何()返回false,这意味着没有真值,因此在原始列表中没有真值

not all(not element for element in data)

只需
all(flags)
?all()是最简单的使用方法,我们也可以使用any(),如果您愿意,您是否建议一门课程或一本书来深入学习python。特别是对于艾索里,我不能特别推荐任何书籍。尽管有很多免费的课程。也许从编解码器开始。如果你对AI方向感兴趣,他们有一个python机器学习课程。