Vérifier la présence d’un nombre dans une liste avec Python

vérifier la présence d'un nombre dans une liste python

Une tâche courante consiste à vérifier si un nombre spécifique est présent dans une liste donnée. En Python, cette opération peut être réalisée de plusieurs manières.

Méthode 1 : Utilisation de l’opérateur d’appartenance “in”

L’approche la plus simple et la plus directe consiste à utiliser l’opérateur d’appartenance in. Cet opérateur renvoie True si l’élément spécifié est présent dans la liste, et False dans le cas contraire. Voici un exemple :

nombres = [1, 2, 3, 4, 5]
if 3 in nombres:
    print("Le nombre 3 est présent dans la liste.")
else:
    print("Le nombre 3 n'est pas présent dans la liste.")

Cette méthode est rapide, concise et facile à lire. Cependant, elle ne convient que pour les petites listes, car sa complexité temporelle est linéaire, ce qui signifie que le temps d’exécution augmente proportionnellement à la taille de la liste.

Méthode 2 : Utilisation d’une boucle “for”

Une autre approche consiste à parcourir la liste à l’aide d’une boucle for et à vérifier si chaque élément correspond au nombre recherché. Voici un exemple :

nombres = [10, 20, 30, 40, 50]
nombre_recherche = 40

present = False
for n in nombres:
    if n == nombre_recherche:
        present = True
        break

if present:
    print(f"Le nombre {nombre_recherche} est présent dans la liste.")
else:
    print(f"Le nombre {nombre_recherche} n'est pas présent dans la liste.")

Cette méthode est plus verbeuse que la précédente, mais elle peut être utile lorsque vous devez effectuer des opérations supplémentaires sur les éléments de la liste en plus de la vérification de présence.

Méthode 3 : Utilisation de la fonction “any()”

Python fournit une fonction intégrée appelée any() qui renvoie True si au moins un élément d’un itérable satisfait une condition donnée. Nous pouvons l’utiliser pour vérifier la présence d’un nombre dans une liste de manière concise :

nombres = [100, 200, 300, 400, 500]
nombre_recherche = 300

if any(n == nombre_recherche for n in nombres):
    print(f"Le nombre {nombre_recherche} est présent dans la liste.")
else:
    print(f"Le nombre {nombre_recherche} n'est pas présent dans la liste.")

Cette approche utilise une compréhension de liste pour vérifier si chaque élément de la liste est égal au nombre recherché. La fonction any() renvoie True dès qu’un élément satisfait la condition, ce qui rend cette méthode plus efficace que la boucle for dans certains cas.

Exemple : Système de réservation pour une compagnie aérienne

Disons que nous gérons un système de réservation pour une compagnie aérienne. Chaque passager peut avoir des préférences pour plusieurs sièges (par exemple, un passager pourrait préférer les sièges 10A, 10D, ou 9A). Nous voulons vérifier si au moins l’un des sièges préférés est disponible. Pour cela, nous pouvons utiliser la fonction any() de Python, qui retourne True si au moins un élément d’un itérable est vrai.

# Liste des sièges disponibles sur un vol
sieges_disponibles = ['10A', '10B', '10C', '11A', '11B', '11C']

# Préférences de sièges d'un passager
preferences_sieges = ['10A', '10D', '9A']

# Vérification si au moins un des sièges préférés est disponible
if any(siege in sieges_disponibles for siege in preferences_sieges):
    print("Au moins l'un de vos sièges préférés est disponible.")
    # Pour savoir quel siège est disponible, nous pouvons faire une autre boucle :
    for siege in preferences_sieges:
        if siege in sieges_disponibles:
            print(f"Le siège {siege} est disponible.")
            # Optionnellement, vous pouvez sortir de la boucle une fois un siège trouvé
            # break
else:
    print("Aucun de vos sièges préférés n'est disponible.")

Alors, si any() retourne True, cela signifie qu’au moins un siège préféré est disponible, et nous pouvons ensuite identifier lequel en parcourant à nouveau la liste des préférences.

Lire aussi :

Un livre pour s’exercer : 100 Exercices Python pour s’entrainer