Vous avez une liste d'éléments et devez fréquemment vérifier si un élément spécifique est présent dans cette liste.
Écrivez une fonction est_present qui prend une liste d'éléments et un élément à rechercher.
La version initiale de la fonction effectue cette vérification de manière inefficace (en O(n)).
Vous devrez modifier cette fonction pour la rendre plus efficiente (en O(1)).
Exemple
>>> liste = [1, 2, 3, 4, 5]
>>> est_present(liste, 3)
True
>>>liste = [1, 2, 3, 4, 5]
>>> est_present(liste, 6)
False
Pour faire une recherche plus efficacement dans une liste, vous pouvez la convertir en set.
code Code
def est_present(liste, element):
return element in set(liste)
comment Explications
Dans la solution initiale, la vérification de la présence d'un élément dans une liste se fait en O(n), car elle nécessite de parcourir toute la liste (dans le pire des cas).
Dans la solution optimisée, nous utilisons un ensemble (set), qui permet de vérifier la présence d'un élément en O(1) en moyenne, grâce à l'utilisation de tables de hachage.
Cependant, cette optimisation nécessite que la structure de données initiale soit convertie en ensemble avant d'effectuer les vérifications, ce que nous faisons grâce au constructeur set.
star Points importants
-
La vérification de la présence d'un élément dans une liste se fait en O(n).
-
La vérification de la présence d'un élément dans un ensemble se fait en O(1) en moyenne.
-
L'utilisation d'ensembles peut considérablement améliorer les performances des opérations de recherche.
def est_present(liste, element):
passdef est_present(liste, element):
return element in set(liste)Console
Un instant...
Résultats
Test de la fonction est_present avec différentes listes.
assert est_present([1, 2, 3, 4, 5], 3) == True, "La fonction `est_present` ne retourne pas la bonne valeur." assert est_present([1, 2, 3, 4, 5], 6) == False, "La fonction `est_present` ne retourne pas la bonne valeur." assert est_present([], 1) == False, "La fonction `est_present` ne retourne pas la bonne valeur." assert est_present([10, 20, 30], 20) == True, "La fonction `est_present` ne retourne pas la bonne valeur."
Bravo, tu as réussi cet exercice de code 🥳
Envoyer ma solution
Vous avez trouvé une solution alternative pour cet exercice ? Proposez votre solution à la communauté 👇
Ma solution :

