Maison > développement back-end > Tutoriel Python > Comment les fonctions `any()` et `all()` de Python fonctionnent-elles pour une évaluation efficace de la véracité des itérables ?

Comment les fonctions `any()` et `all()` de Python fonctionnent-elles pour une évaluation efficace de la véracité des itérables ?

Barbara Streisand
Libérer: 2025-01-04 08:02:33
original
488 Les gens l'ont consulté

How Do Python's `any()` and `all()` Functions Work for Efficient Truthiness Evaluation of Iterables?

Comprendre les fonctions any() et all() de Python

Fonctions intégrées en Python, any() et all(), jouer un rôle crucial dans l’évaluation de la véracité des valeurs au sein d’un itérable. Ces fonctions offrent des moyens concis et efficaces de tester plusieurs conditions.

any() Function

any() détermine si un élément d'un itérable est vrai. Il renvoie True même si une seule valeur True est présente ; sinon, il renvoie False.

Exemple :

my_list = [0, False, 'Hello', 1, '']
print(any(my_list))  # Outputs True as 'Hello' and 1 are True
Copier après la connexion

Fonction all()

all(), sur d'autre part, vérifie si chaque élément d'un itérable est vrai. Il ne renvoie True que si tous les éléments sont True ; sinon, il renvoie False.

Exemple :

my_list = [True, 1, 'True']
print(all(my_list))  # Outputs True as all elements are True
Copier après la connexion

Vérité et évaluation logique

any() et tout () effectuent essentiellement des opérations logiques OU et ET, respectivement. Comprendre leur comportement de véracité est essentiel.

Table de vérité :

Iterable Values any() all()
All True True True
All False False False
Mixed True and False True False
Empty Iterable False True

Comprendre votre code

Dans votre code, vous utilisez une combinaison de any() et all() pour vérifier si une valeur dans un tuple est différente tout en vous assurant que toutes les valeurs ne sont pas différentes. Cependant, le résultat que vous attendiez n'a pas été obtenu en raison d'un malentendu dans l'évaluation du code :

d = defaultdict(list)
print(list(zip(*d['Drd2'])))  # [(1, 1), (5, 6), (0, 0)]
print([any(x) and not all(x) for x in zip(*d['Drd2'])])  # [False, False, False]
Copier après la connexion

Dans ce cas, any(x) vérifie si une valeur dans un tuple est différente (c'est-à-dire True), tandis que all(x) garantit que toutes les valeurs ne sont pas différentes (c'est-à-dire False). Puisque (1, 1), (5, 6) et (0, 0) ont tous des valeurs différentes, il évalue correctement les trois tuples comme [False, False, False].

Pour obtenir le résultat souhaité , vous pouvez modifier le code comme suit :

print([x[0] != x[1] for x in zip(*d['Drd2'])])  # [False, True, False]
Copier après la connexion

Cela vérifie directement si le premier et le deuxième élément de chaque tuple sont différents, ce qui donne le résultat attendu [False, True, Faux].

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