@Rira
Citation :
Je pensait que lorsque j'écris for e in L par exemple, à chaque fois e parcourt tous les éléments de L. Ce qui n'est pas le cas apparemment. C'est ça??
Réponse:
Si la liste L n'est pas modifiée pendant l'exécution de la boucle for, e parcourt tous les éléments de L.
Par contre, si la liste L est modifiée pendant l'exécution, e peut ne pas parcourir tous les éléments de la liste initiale L. C'est ce que j'ai expliqué dans mon post précédent.
Citation :
Et pour votre version de la fonction fréquence , il y toujours le problème des éléments répétés .
Réponse:
Bien évidemment, j'ai testé ton programme et j'ai constaté qu'il ne donnait pas le bon résultat pour L=[12,4,5,12,4,4,2,5]. Ensuite, après quelques tests, j'ai compris pourquoi il ne fonctionnait pas pour cet exemple.
J'ai aussi testé la modification de programme que je proposais et j'ai constaté qu'il donnait le bon résultat pour L=[12,4,5,12,4,4,2,5].
Je suis donc très étonné ...
Voici une copie de mon programme.
def rep2(L):
G=[]
for i in L:
if not(i in G):
G.append(i)
return G
def frequences(L):
F=[]
for i in range(0,len(L)):
F.append((L[i],L.count(L[i])))
return sorted(rep2(F))