Bonjour tout le monde,
Je cherche à trier une liste du type :
Liste = [("A",4),("B",3),("C",2),("D",2),("E",2),("F",2),("G",1),("H",1),("D",1)]
Cette liste represente, par exemple, le nombre d'occurence de chaque lettre dans un texte : si l'utilisateur tape occurence(texte,k) : la fonction retourne les K lettres les plus abondantes dans le texte, donc dans ma liste qui compte le nombre d'occurence de chaque lettre ( j'ai deja ecrit un fonction qui fait ca et qui en plus les trie par ordre croissant).
donc, j'ai ecrit cette fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 occurence(texte,k): ListeTriee=[] ListeRetour=[] Liste= [("A",4),("B",3),("J", 3) , ("C",2),("D",2),("E",2),("F",2),("G",1),("H",1),("D",1)] print Liste for i in range(len(Liste)): while i<range(len(Liste)): if Liste[i][1] != Liste[i+1][1] and j<k : ListeRetour.append(Liste[i+1]) j=j+1 elif Liste[i][1] == Liste[i+1][1]: ListeRetour.append(Liste[i+1][1]) return ListeRetour
En fait, je voulais un resultat sous forme de liste, qui renvoi les k lettres les plus abondante, et que si plusieurs lettres ont la meme occurence, elles doivent etre inserée dans la liste jusqu'a ce que on est les K lettre les plus abondantes :
Par exemple, ici, si l'utilisateur tape
occurence('texte',3), on doit avoir [ "A","B","J"]
Ma fonction ne marche pas ... Quelqu'un aurait il la gentillesse de m'aider ?
Merci.
Partager