Bonjour!!!
J'ai une liste de ce type a trier :
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 :
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