为布尔值列表实现.all()?

2024-09-28 22:35:46 发布

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

Numpy对于布尔数组有一个很好的方法.all(),它可以测试所有的值是否为真。我想做同样的事情而不添加numpy到我的项目。标准图书馆里有类似的东西吗?否则,您将如何实施它?你知道吗

我当然可以想到一个显而易见的方法:

def all_true(list_of_booleans):
    for v in list_of_booleans:
        if not v:
            return False
    return True

有没有更优雅的方式,也许是一个班轮?你知道吗


Tags: of项目方法numpytrue标准return图书馆
2条回答

有;令人惊讶的是,它被称为^{}。正如你所描述的那样,它的实现是准确的

Return True if all elements of the iterable are true (or if the iterable is empty). Equivalent to:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

New in version 2.5.

这不仅限于布尔型。注意,这需要一个iterable;传入一个生成器表达式意味着只有足够的生成器表达式将被评估以检验假设:

>>> from itertools import count
>>> c = count()
>>> all(i < 10 for i in c)
False
>>> next(c)
11

还有一个等价的^{} function。你知道吗

有一个类似的函数,叫做^{}。你知道吗

相关问题 更多 >