ホームページ >バックエンド開発 >Python チュートリアル >Python の「any」関数と「all」関数はリスト内包表記でどのように機能しますか?また、これが「[False, False, False]」を返すのはなぜですか?

Python の「any」関数と「all」関数はリスト内包表記でどのように機能しますか?また、これが「[False, False, False]」を返すのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-10 01:19:13543ブラウズ

How Do Python's `any` and `all` Functions Work in List Comprehension, and Why Might This Return `[False, False, False]`?

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

Python の any および all は、反復可能を評価し、それに基づいてブール値を返す組み込み関数です。彼らの真実性elements.

any

any は、イテラブル内の少なくとも 1 つの要素が True (または数値の場合は 0 以外) の場合に True を返します。 True 値が見つかるか、すべての要素が使い果たされるまで反復可能を評価します。

all

all は、反復可能内のすべての要素が True の場合にのみ True を返します。 iterable が空の場合、すべてが True を返します。 False 値が見つかるか、すべての要素が検査されるまで、反復可能オブジェクトの評価が続けられます。

真実性

真実性を理解することは、あらゆるものがどのように機能するかを理解するために重要です。 Python では、値がゼロ、空の文字列、または None (Null) でない場合、値は True とみなされます。 False 値には、0、空のコンテナ、False 自体が含まれます。

コード

コードでは、リスト内包表記を使用しています:

[any(x) and not all(x) for x in zip(*d['Drd2'])]

この式を理解するために、分解してみましょうdown:

  • zip(*d['Drd2']): d['Drd2'] 内の異なるリストから対応する要素をグループ化してタプルのリストを作成します。
  • for x in zip(*d['Drd2']): 作成されたリスト内のタプルを反復処理します。 tuples.
  • any(x): 指定されたタプル内のいずれかの要素が True かどうかを評価します。
  • not all(x): 指定されたタプル内のすべての要素が True であるかどうかを評価します。
  • and: 前述の式の結果を結合します。

理由False が返されます

コードは、タプルのリスト内の各タプルについて、少なくとも 1 つの値が True であるかどうかをチェックし、同時にすべての値が True であるわけではないため、[False、False、False] を返します。 d['Drd2'] 内のタプルには同一の要素があるため、すべてのタプルで all(x) が True になり、all(x) が False にはなりません。その結果、式全体は any(x) になり、各タプルの not all(x) が False と評価されます。

以上がPython の「any」関数と「all」関数はリスト内包表記でどのように機能しますか?また、これが「[False, False, False]」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。