Vous devez écrire une fonction compte_mots qui prend une chaîne de caractères comme argument et retourne un dictionnaire avec le nombre d'occurrences de chaque mot dans la chaîne.
Les mots dans la chaîne sont séparés par des espaces et vous ne devez pas tenir compte de la casse (majuscules/minuscules).
Utilisez la classe Counter du module collections pour réaliser cet exercice.
Exemple
>>> compte_mots("Bonjour le monde le bonjour")
{'bonjour': 2, 'le': 2, 'monde': 1}
Pour séparer les mots d'une phrase sur les espaces, vous pouvez utiliser la méthode split.
code Code
from collections import Counter
def compte_mots(phrase):
mots = phrase.lower().split()
compteur = Counter(mots)
return dict(compteur)
comment Explications
Dans cet exemple, la fonction compte_mots utilise Counter pour créer un dictionnaire où les clés sont les mots de la phrase, tous transformés en minuscules pour une comparaison insensible à la casse avec la méthode lower.
On a également séparé les mots de la phrase avec la méthode split qui sépare par défaut sur les espaces et nous retourne une liste
Les valeurs de l'objet retourné par Counter correspondent au nombres d'occurrences de chaque mot dans la liste.
Pour finir, on retourne le résultat sous forme de dictionnaire grâce au constructeur dict.
star Points importants
-
Pour mettre une chaîne de caractères en minuscules, on utilise la méthode
lower. -
Pour séparer une chaîne de caractères en liste sur les espaces, on utilise
splitsans argument. -
Pour compter le nombre d'occurrences d'éléments dans une liste, on utilise la classe
Counterdu modulecollections.
from collections import Counter
def compte_mots(phrase):
mots = phrase.lower().split()
compteur = Counter(mots)
return dict(compteur)Console
Un instant...
Résultats
Test avec la chaîne de caractères "Bonjour le monde le bonjour"
assert compte_mots("Bonjour le monde le bonjour") == {'bonjour': 2, 'le': 2, 'monde': 1}, "La fonction ne retourne pas le bon résultat"Test avec la chaîne de caractères "Chat chat CHAT"
assert compte_mots("Chat chat CHAT") == {'chat': 3}, "La fonction ne retourne pas le bon résultat"Test avec une chaîne de caractères vide
assert compte_mots("") == {}, "La fonction ne retourne pas le bon résultat."
assert type(compte_mots("")) == dict, "La fonction ne retourne pas un dictionnaire."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 :



