lis的布尔值

2024-04-25 09:43:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一个函数,结果是一个列表:

[3, 3, 3]

现在我需要返回一个布尔值。如果所有元素都是2或更高,则需要返回True,否则需要返回false。在这种情况下,它将是:真的。(因为所有元素都是3和3>;2) 有没有代码可以很快做到这一点?你知道吗

我试着做一个FOR循环,比如:

for i in [3, 3, 3]: if i >= 2: return True else: return False

我认为这是正确的,但我想知道是否有一个更快的方法。你知道吗

提前谢谢!你知道吗


Tags: 函数代码ingtfalsetrue元素列表
3条回答

生成一个generatorgenerator expression这里)生成布尔值并将其传递给^{} function

>>> all(x >= 2 for x in [3, 3, 3])
True

我看到你发布了你的代码,这是不正确的,因为它只会检查列表的第一个元素。您可以修复它:

for i in your_list: 
    if i < 2: 
        return False # Return early
return True # if `i < 2` was False for all elements in the list, return True
def areGreaterEqualThen2(lst):
    if lst:
        return lst[0] >= 2 and areGreaterEqualThen2(lst[1:])
    return True

如果你必须定义你自己的函数。你知道吗

这也是一个快速的解决方案,因为如果第一个条件为false,则整个and返回false。你知道吗

a= [3, 3, 3]
b=[elem for elem in a if elem > 2]  
print (a==b)

输出:真

或者用更简洁的方式

a= [3, 3, 3]
print([elem for elem in a if elem > 2]==a)  

输出:真

相关问题 更多 >