Python >> Tutoriel Python >  >> Python

Fonction Python any()

any(x) intégré de Python la fonction prend un itérable comme argument x comme une liste, un tuple ou un dictionnaire. Il renvoie True si au moins un des éléments de l'itérable vaut True en utilisant la conversion booléenne implicite, sinon elle renvoie False . Si l'itérable est vide, par exemple, any([]) , il renvoie False car la condition n'est satisfaite pour aucun élément .

Argumentation x -> x1, x2, ..., xn Itérable tel qu'une liste, un tuple ou un dictionnaire
Valeur de retour bool(x1) or bool(x2) ... or bool(xn) Renvoie True si un élément est évalué à True en utilisant le bool() fonction de conversion. Il effectue essentiellement un or logique sur les représentations booléennes des éléments de l'itérable.

Interface de code interactive

Considérez l'extrait de code interactif suivant :

Exercice :Supprime un élément de la liste pour que le any() la fonction renvoie False .

Astuce  :Un seul élément est évalué à True .


Mais avant de continuer, je suis ravi de vous présenter mon nouveau livre Python Python One-Liners (Lien Amazon).

Si vous aimez les one-liners, vous allez adorer le livre. Il vous apprendra tout ce qu'il y a à savoir sur une seule ligne de code Python. Mais c'est aussi une introduction à l'informatique , science des données, apprentissage automatique et algorithmes. L'univers en une seule ligne de Python !

Le livre est sorti en 2020 avec l'éditeur de livres de programmation de classe mondiale NoStarch Press (San Francisco).

Lien :https://nostarch.com/pythononeliners

Exemple any() pour les listes

Le code suivant vous montre comment utiliser le any() fonction sur différentes listes.

# Boolean list with False value
print(any([True, False, True, True]))
# True


# Boolean list without False value
print(any([True, True]))
# True


# Integer list with 0 value
print(any([1, 2, -1, 0]))
# True


# Integer list without 0 value
print(any([1, 2, -1]))
# True


# Nested list with empty inner list
print(any([[], [1, 2, 3]]))
# True


# Nested list with two empty inner lists
print(any([[], []]))
# False


# Empty List
print(any([]))
# False

Exemple any() pour les tuples

Si vous utilisez le any() sur les tuples, elle renverra une valeur booléenne qui indique si tous les éléments du tuple sont évalués à True .

print(any((1, 2, 3)))
# True

print(any((0, 0, 0)))
# False

print(any((False, 2==3, -1)))
# True

print(any((True, 3, 1!=1)))
# True

Exemple any() pour Dicts

Le any() la fonction sur les dictionnaires vérifie l'itérable des clés (pas les valeurs) si au moins une clé est évaluée à True . Si c'est le cas, la valeur de retour est True , sinon c'est False .

d = {'': 10000,
     0: 5000,
     tuple(): 0}

print(any(d))
# False

d['x'] = 100000


print(any(d))
# True

Mise en œuvre

Selon la documentation officielle de Python, le any() la fonction est sémantiquement équivalente à l'extrait de code suivant :

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

Ainsi, il passe en revue tous les éléments de l'itérable et utilise l'élément comme condition if pour vérifier s'il est évalué à True ou False . Dès qu'un True élément est détecté, il interrompt la boucle et renvoie True . Il s'agit d'une optimisation appelée court-circuit et cela signifie que seul le premier True la valeur est évaluée !

Fonction Python any() avec boucle For

Vous pouvez également créer dynamiquement un itérable à l'aide d'une expression de générateur et le passer dans le any() fonction. Cela peut être appelé un "any () fonctionner avec une boucle for ».

print(any(x**2 == 16 for x in range(10)))
# True

Vous utilisez la condition x**2 == 16 qui vaut uniquement pour x=4 . Comme vous appliquez cette expression pour tous les x valeurs de 0 à 9 (inclus) en utilisant le range() fonction, elle renvoie principalement False . En raison d'un court-circuit, le any() la fonction renvoie True après avoir évalué le cinquième élément x=4 .

Résumé

any(x) intégré de Python la fonction prend un itérable comme argument x comme une liste, un tuple ou un dictionnaire.

Il renvoie True si au moins un des éléments de l'itérable évalue à True en utilisant la conversion booléenne implicite , sinon il renvoie False . Si l'itérable est vide, any([]) renvoie False car la condition n'est satisfaite pour aucun élément .


Prochain article