すべての要素が「false」であるため、「false」を返す方法は?
指定されたリストは次のとおりです。
data = [False, False, False]
基本的に、イテレート可能オブジェクトを処理し、シーケンスのどのブール値要素が評価されるかに応じてTrueまたはFalseを返す2つの関数があります。
all(iterable)
は、iterable
のすべての要素が真の値(reduce(operator.and_, iterable)
など)と見なされる場合にTrueを返します。
any(iterable)
は、iterable
の少なくとも1つの要素が真の値である場合にTrueを返します(これも機能的なものを使用して、reduce(operator.or_, iterable)
)。
all
関数を使用して、リストにoperator.not_
をマッピングするか、値を無効にして新しいシーケンスを作成し、新しいシーケンスのすべての要素がtrueであることを確認できます。
>>> all(not element for element in data)
any
関数を使用すると、少なくとも1つの要素がtrueであることを確認し、true要素がある場合はFalse
を返す必要があるため、結果を否定できます。
>>> not any(data)
De Morganの法則によれば、これら2つのバリアントは同じ結果を返しますが、より短く、読みやすいため(そして、実際には「真の値ではない」と直感的に理解できるため、any
を使用する)最後の方を好むでしょうデータ」)、より効率的です(余分なシーケンスを作成しないため)。