27

たとえば、同じ長さの bool の n 個のリストがある場合、要素ごとのブール AND は、すべての入力リストが True を持つ位置で True を持ち、それ以外の場所では False を持つ、その長さの別のリストを返す必要があります。

書くのはとても簡単です。(標準化/読みやすさのために) ビルトインが存在する場合は、ビルトインを使用することをお勧めします。

要素ごとの AND の実装を次に示します。

def eAnd(*args):
    return [all(tuple) for tuple in zip(*args)]

使用例:

>>> eAnd([True, False, True, False, True], [True, True, False, False, True], [True, True, False, False, True])
[True, False, False, False, True]
4

5 に答える 5

23

これを行う組み込みの方法はありません。一般的に言えば、リスト内包表記などは、Python で要素単位の操作を行う方法です。

Numpy はこれを (&技術的な制限のために を使用して) 配列型で提供します。Numpy 配列は通常、要素ごとに操作を実行します。

于 2010-05-05T03:52:16.790 に答える
3

折りたたむ次元を指定すると、numpy.all関数は必要な処理を実行します。

>>> all([[True, False, True, False, True], [True, True, False, False, True], [True, True, False, False, True]], 0)
array([ True, False, False, False,  True], dtype=bool)
于 2014-06-04T16:12:08.490 に答える
1

いいえ、そのようなビルトインはありません。zipand all/を使用する方法anyは、私が使用するものです。

于 2010-05-05T03:40:45.360 に答える
1

いいえ、標準ライブラリにそのような関数があるとは思いません...特に、提供されている関数に関して書くのがとても簡単な場合は。

于 2010-05-05T03:41:27.647 に答える