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
def est_present(liste, element):
return element in set(liste)
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.
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.
OTCHO

Jean-Francois

jamil

Eric CLOUZET

Julien

Frax

Mathieux

Théo

Kévin THOMAS

HAl

Pacôme Angenor

Seydou

victor

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 :