Maison > développement back-end > Tutoriel Python > Comment les fonctions « any » et « all » de Python fonctionnent-elles dans la compréhension de liste, et pourquoi cela pourrait-il renvoyer « [False, False, False] » ?

Comment les fonctions « any » et « all » de Python fonctionnent-elles dans la compréhension de liste, et pourquoi cela pourrait-il renvoyer « [False, False, False] » ?

Patricia Arquette
Libérer: 2024-12-10 01:19:13
original
598 Les gens l'ont consulté

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

Comprendre les fonctions any et all de Python

Les fonctions any and all de Python sont des fonctions intégrées qui évaluent les itérables et renvoient une valeur booléenne basée sur le la véracité de leur elements.

any

any renvoie True si au moins un élément de l'itérable est True (ou différent de zéro pour les valeurs numériques). Il évalue l'itérable jusqu'à ce qu'une valeur True soit rencontrée ou que tous les éléments aient été épuisés.

all

all renvoie True uniquement si tous les éléments de l'itérable sont True. Si l'itérable est vide, all renvoie True. Il continue d'évaluer l'itérable jusqu'à ce qu'une valeur fausse soit rencontrée ou que tous les éléments aient été examinés.

vérité

Comprendre la véracité est crucial pour comprendre comment tout fonctionne. En Python, les valeurs sont considérées comme vraies si elles ne sont pas nulles, des chaînes vides ou Aucune (Null). Les valeurs Falsey incluent 0, les conteneurs vides et False lui-même.

Votre code

Dans votre code, vous utilisez la compréhension de liste :

[any(x) and not all(x) for x in zip(*d['Drd2'])]
Copier après la connexion

Pour comprendre cette expression, cassons-la down:

  • zip(*d['Drd2']) : crée une liste de tuples en regroupant les éléments correspondants de différentes listes dans d['Drd2'].
  • pour x in zip(*d['Drd2']) : parcourt les tuples dans la liste de tuples créée.
  • any(x) : évalue si un élément dans un tuple donné est True.
  • not all(x) : évalue si tous les éléments d'un tuple donné ne sont pas vrais.
  • et : combine les résultats des expressions précédentes.

Pourquoi False est renvoyé

Votre code renvoie [False, False, False] car il vérifie si au moins une valeur est vraie et simultanément toutes les valeurs ne sont pas vraies pour chaque tuple de la liste des tuples. Puisque les tuples de d['Drd2'] ont des éléments identiques, all(x) est True pour chaque tuple, ce qui ne rend pas all(x) False. Par conséquent, l'expression globale devient any(x) et not all(x) est évalué à False pour chaque tuple.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal