On m'a demandé de définir une fonction pour retourner le haut utilisé 3 mots dans une phrase. Je suis en mesure de compiler une phrase souhaitée dans un dictionnaire pour que quelque chose commeTop 3 fréquence des mots dans une phrase
'test test bye bye hello hello world world world'
est sous la forme
{'world': 3, 'hello': 2, 'bye': 2, 'test': 2}
Cependant, je ne veux que les 3 premiers mots utilisés et comme on peut le voir , il y a un conflit entre 3 éléments du dictionnaire. En cas de conflit, il est préférable de trier les mots en conflit par ordre alphabétique de sorte que seules 3 valeurs soient renvoyées. Dans ce cas, je voudrais:
['world','bye','hello']
être retourné après le tri. Comment pourrais-je y aller en faisant cela?
Je pense que '[x pour x, y en ordonnée (d.items(), key = lambda (x, y) : (-y, x)) [: 3]] 'serait s légèrement plus propre; vous ne gagnez aucun bénéfice de 'itertiems' ici, car tous les éléments sont nécessaires pour le tri, et avoir' x' se référer à deux choses différentes dans la même ligne est assez gênant. – jonrsharpe
Vous avez probablement raison. C'est juste une habitude pour moi d'utiliser 'iteritems'! – Ben