La fonction any() est une fonction built-in (intégrée) de Python qui prend un itérable en argument.
À noter
Avant de continuer la lecture, nous vous conseillons de lire notre glossaire sur les booléens.
any() retourne True si au moins un des éléments de l'itérable est évalué comme vrai. Si tous les éléments sont faux, ou que l'itérable est vide, elle retourne False.
C'est un moyen efficace de vérifier une condition sur un ensemble de données.
# Contient au moins un élément True valeurs_1 = [False, True, False] print(any(valeurs_1)) # Résultat : True # Tous les éléments sont False valeurs_2 = [False, False, False] print(any(valeurs_2)) # Résultat : False # L'itérable est vide valeurs_3 = [] print(any(valeurs_3)) # Résultat : False
Utilisation plus complexe
L'évaluation truthy (vraie)
any() utilise la valeur de vérité des objets Python. Par exemple :
-
Les nombres non nuls, les chaînes non vides et les collections non vides sont
True -
Le nombre
0,None, les chaînes vides et les collections vides sontFalse
Grâce à cela, any() permet d'analyser des données de manière très efficace :
# Vérifier si une liste de nombres contient une valeur non nulle nombres = [0, 0, 42, 0] if any(nombres): print("La liste contient au moins un nombre non nul.") # Résultat : La liste contient au moins un nombre non nul. # Vérifier si un utilisateur a au moins une permission permissions = { 'lecture': False, 'ecriture': False, 'execution': True } if any(permissions.values()): print("L'utilisateur a au moins une permission active.") # Résultat : L'utilisateur a au moins une permission active.
Utilisation d'une expression génératrice
Il est tout à fait possible d'utiliser any() avec une expression génératrice, ce qui permet d'appliquer une condition à chaque élément d'un itérable. De cette manière on crée un générateur qui produit des True ou False à la volée :
# Vérifier si au moins un mot est plus long que 5 caractères mots = ["python", "est", "un", "langage", "puissant"] contient_mot_long = any(len(mot) > 5 for mot in mots) print(contient_mot_long) # Résultat : True (car "python", "langage" et "puissant" ont plus de 5 caractères)
À noter
On peut voir la fonction any() comme la fonction sœur de all(), sauf que cette dernière retourne True si tous les éléments sont vrais.