Exercices Structures de données Grouper par critère
🎉

Bravo!

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

Grouper par critère

Grouper des éléments par un critère, c'est un pattern ultra courant en programmation. Par exemple, grouper des mots par leur première lettre, des élèves par leur classe, des commandes par leur statut.

Le principe : tu crées un dictionnaire ou chaque clé est le critère de regroupement, et chaque valeur est une liste des éléments correspondants.

Pour éviter de vérifier si la clé existe déjà avant d'ajouter un élément, tu peux utiliser .setdefault(cle, valeur_par_defaut). Cette méthode renvoie la valeur existante si la clé est déjà présente, sinon elle insère la valeur par défaut et la renvoie :
groupes = {}
groupes.setdefault('fruits', []).append('pomme')
groupes.setdefault('fruits', []).append('poire')
groupes vaut {'fruits': ['pomme', 'poire']}

Écris une fonction grouper_par_longueur(mots) qui prend une liste de mots et renvoie un dictionnaire ou les clés sont les longueurs et les valeurs sont les listes de mots de cette longueur.

Exemple :
grouper_par_longueur(['chat', 'le', 'riz', 'loup']) renvoie {4: ['chat', 'loup'], 2: ['le'], 3: ['riz']}

Tests (4/4)

Cas normal
assert grouper_par_longueur(['chat', 'le', 'riz', 'loup']) == {4: ['chat', 'loup'], 2: ['le'], 3: ['riz']}
Liste vide
assert grouper_par_longueur([]) == {}
Même longueur
assert grouper_par_longueur(['ab', 'cd', 'ef']) == {2: ['ab', 'cd', 'ef']}
Un seul mot
assert grouper_par_longueur(['python']) == {6: ['python']}

Indices (3 disponibles)

solution.py