problème sur un exercice sur les dictionnaires et les listes
Bonjour,
j'ai besoin de l'aide sur l'exercice suivant. Mon code ne retourne pas le résultat attendu.
le voici l'énoncé de l'exercice:
Citation:
Écrire une fonction words_by_length(fileName) qui prend en paramètre le nom, sous forme d’une chaîne de caractères, d’un fichier texte, et qui renvoie un dictionnaire associant à une longueur l la liste triée (dans l’ordre utf-8 croissant) des mots de longueur l présents dans le texte contenu dans le fichier. Ces mots seront écrits en minuscules.
Le voici mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| def words_by_length(fileName) :
dico_inter = {}
dico_sortie = {}
with open(fileName, encoding="utf-8") as fichier :
for ligne in fichier :
for mot in ligne.split() :
mot = mot.lower()
if mot not in dico_inter :
dico_inter[mot] = len(mot)
list_len = list(dico_inter.values())
list_len = sorted(list_len)
list_mot = list(dico_inter.keys())
list_mot = sorted(list_mot)
for longueur in list_len :
for mot2 in list_mot :
if dico_inter[mot2]==longueur :
if longueur not in dico_sortie :
dico_sortie[longueur]=[mot2]
elif mot2 not in dico_sortie[longueur] :
dico_sortie[longueur].append(mot2)
return dico_sortie |