À quoi sert la fonction any ?

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
Un instant

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 sont False

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.
Un instant

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)
Un instant

À 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.

Bravo, tu es prêt à passer à la suite

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.