Exercices Projets guidés Contact 6 : Recherche floue
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

Contact 6 : Recherche floue

La recherche exacte ne suffit pas dans un vrai produit. Les utilisateurs veulent taper un bout de nom et trouver tous les résultats correspondants. C'est la base d'une barre de recherche, et c'est le principe du icontains de Django ORM.

Écris une fonction recherche_floue(contacts, terme) qui retourne la liste de tous les contacts dont le nom contient le terme (insensible à la casse). Les résultats sont triés par nom alphabétiquement.

Exemple :
contacts = [{"nom": "Alice Martin", ...}, {"nom": "alice Durand", ...}, {"nom": "Bob", ...}]
recherche_floue(contacts, "alice") retourne les 2 contacts avec "alice" dans le nom

Tests (2/4)

Recherche partielle
contacts = [
    {'nom': 'Alice Martin', 'email': 'a@x.com', 'telephone': '1', 'ville': 'Paris'},
    {'nom': 'Bob Dupont', 'email': 'b@x.com', 'telephone': '2', 'ville': 'Lyon'},
    {'nom': 'alice Durand', 'email': 'c@x.com', 'telephone': '3', 'ville': 'Nice'},
]
result = recherche_floue(contacts, 'alice')
assert len(result) == 2
assert result[0]['nom'] == 'Alice Martin'
Aucun résultat
contacts = [{'nom': 'Bob', 'email': 'b@x.com', 'telephone': '2', 'ville': 'Lyon'}]
assert recherche_floue(contacts, 'zzzz') == []

+ 0 tests cachés

Indices (3 disponibles)

solution.py