ホームページ > バックエンド開発 > Python チュートリアル > Python の「any」関数と「all」関数はどのように機能するのか、またタプルの比較が失敗したのはなぜですか?

Python の「any」関数と「all」関数はどのように機能するのか、またタプルの比較が失敗したのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-11 04:35:13
オリジナル
1008 人が閲覧しました

How Do Python's `any` and `all` Functions Work, and Why Did My Comparison of Tuples Fail?

Python の any および all 関数の動作を理解する

Python の any および all は、反復可能な内の複数の要素の真偽を評価する便利な方法を提供します。 。 any はいずれかの要素が True の場合に True を返しますが、all はすべての要素が True の場合にのみ True を返します。

any と all

直感的には、any は一連の論理 OR 演算子 (||)、および一連の論理 AND 演算子 (&&) として使用できます。この理解は、その機能を明確にするのに役立ちます:

  • any: 少なくとも 1 つの Truthy 要素は True の戻り値を返します。空のイテラブルは False に評価されます。
  • all: すべての要素が Truthy である場合にのみ、すべてが True を返します。

短絡

あらゆるものの重要な側面は、その短絡動作です。結果を決定できるまで要素を順番に評価します。この最適化により、反復可能全体の不必要な走査が防止されます。

指定された例のアプリケーション

この例では、タプルを比較して、値が異なるかどうかを確認することを目的としています。その場合は True を出力します。予期される出力は [False、True、False] である必要があります。ただし、実際に得られる結果は「False、False、False」です。この矛盾は、使用されている式から生じます:

[any(x) and not all(x) for x in zip(*d['Drd2'])]
ログイン後にコピー

括弧内の式は、タプル内の少なくとも 1 つの要素が True であるが、すべての要素が True であるわけではない場合にのみ True と評価されます。指定されたケースでは、どのタプルにもそのような値は含まれていません。したがって、結果は誤って [False, False, False] になります。

正しい実装

意図した動作を実現するには、代わりに次の式を使用できます。

[x[0] != x[1] for x in zip(*d['Drd2'])]
ログイン後にコピー

この式は、各タプルの最初と 2 番目の要素を直接比較し、異なる場合は True を返します。その結果、目的の [False, True, False] の出力が得られます。

以上がPython の「any」関数と「all」関数はどのように機能するのか、またタプルの比較が失敗したのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート