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
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
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]
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]
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!