0

Numpy には、.all()すべての値が true かどうかをテストするブール値の配列のための優れたメソッドがあります。プロジェクトに numpy を追加せずに同じことをしたいと思います。標準ライブラリに似たようなものはありますか? そうでなければ、どのように実装しますか?

もちろん、それを行うための明白な方法を考えることができます:

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

おそらくワンライナーなど、よりエレガントな方法はありますか?

4

2 に答える 2

5

がある; と呼ばれていますall()、意外にも。Cではありますが、説明どおりに実装されています。ドキュメントの引用:

iterableTrueのすべての要素が true の場合 (または iterable が空の場合)を返します。に相当:

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

バージョン 2.5 の新機能。

これはブール値だけに限定されません。これにはiterableが必要であることに注意してください。ジェネレーター式を渡すということは、仮説をテストするために十分なジェネレーター式だけが評価されることを意味します。

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

同等のany()機能もあります。

于 2013-10-17T13:11:02.317 に答える
2

と呼ばれる同様の関数がありますall()

于 2013-10-17T13:11:21.247 に答える