Exercices Projets guidés Contact 8 : Trier les contacts
🎉

Bravo!

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

Contact 8 : Trier les contacts

Pouvoir trier des données selon différents critères et dans différents ordres, c'est le ORDER BY du SQL en Python pur. C'est aussi ce que font les tableaux triables dans les interfaces web.

En Python, sorted() crée une nouvelle liste triée sans modifier l'originale. key définit le critère de tri, reverse=True inverse l'ordre.

Écris une fonction trier_contacts(contacts, champ="nom", inverse=False) qui retourne une nouvelle liste triée selon le champ donné (nom, ville ou email). Si inverse=True, le tri est décroissant. La liste originale ne doit pas être modifiée.

Exemple :
trier_contacts(contacts, champ="ville", inverse=True) trie par ville de Z à A

Tests (2/4)

Tri par nom
contacts = [
    {'nom': 'Zoe', 'email': 'z@x.com', 'telephone': '3', 'ville': 'Paris'},
    {'nom': 'Alice', 'email': 'a@x.com', 'telephone': '1', 'ville': 'Lyon'},
    {'nom': 'Bob', 'email': 'b@x.com', 'telephone': '2', 'ville': 'Nice'},
]
result = trier_contacts(contacts)
assert [c['nom'] for c in result] == ['Alice', 'Bob', 'Zoe']
Tri par ville inverse
contacts = [
    {'nom': 'A', 'email': 'a@x.com', 'telephone': '1', 'ville': 'Paris'},
    {'nom': 'B', 'email': 'b@x.com', 'telephone': '2', 'ville': 'Lyon'},
    {'nom': 'C', 'email': 'c@x.com', 'telephone': '3', 'ville': 'Nice'},
]
result = trier_contacts(contacts, champ='ville', inverse=True)
assert result[0]['ville'] == 'Paris'

+ 0 tests cachés

Indices (3 disponibles)

solution.py