Maison >développement back-end >Tutoriel Python >Comment les fonctions `any()` et `all()` de Python se comportent-elles lors de la comparaison de tuples ?

Comment les fonctions `any()` et `all()` de Python se comportent-elles lors de la comparaison de tuples ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-09 20:04:15641parcourir

How Do Python's `any()` and `all()` Functions Behave When Comparing Tuples?

Comment fonctionnent toutes les fonctions de Python

Lors de la comparaison de tuples, les fonctions intégrées any() et all() entrent en jeu jouer. Voici en quoi ils diffèrent :

any()

any() est évalué à True si au moins un élément d'un itérable est Truthy (c'est-à-dire pas False, 0, '', etc.).

all()

all(), de l'autre main, renvoie True uniquement lorsque chaque élément d'un itérable est Truthy.

Comprendre le cas d'utilisation

Dans l'extrait de code fourni :

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

Chacun des tuples de zip(*d['Drd2']) est évalué dans le contexte de any(x) et non de all(x). Cependant, le résultat inattendu [Faux, Faux, Faux] soulève des questions.

Interprétation des erreurs

Selon la table de vérité pour tous :

any(x) all(x) any(x) and not all(x)
True False True
False True False
True True False
False False False

Dans ce cas, tous les tuples sont constitués de nombres identiques (c'est-à-dire des valeurs vraies), donc any(x) serait toujours vrai, et all(x) serait également vrai. Par conséquent, any(x) et not all(x) doivent toujours être évalués à False, ce qui n'est pas reflété dans le résultat.

Cause de l'erreur

L'erreur réside dans l'attente erronée que (x[0] != x[1]) serait une expression de vérité. Cependant, lorsque les nombres dans le tuple sont égaux (par exemple, (1, 1)), (x[0] != x[1]) est évalué à False.

Corriger la logique

Pour déterminer avec précision si des valeurs au sein d'un tuple sont différentes, vous pouvez utiliser la logique suivante :

print [x[0] != x[1] for x in zip(*d['Drd2'])]

Cette expression compare correctement les éléments correspondants de chaque tuple pour identifier les différences, comme prévu.

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!

Déclaration:
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