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
Afficher l'aide

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

Console

Un instant...
terminal

Résultats

/ 1 tests validés

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é 👇

Seules les propositions différentes de la solution proposée par Docstring peuvent être envoyées.

Ma solution :

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

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