Maison >développement back-end >Tutoriel Python >Comment compter et trier les mots par fréquence dans une liste en Python
Compter et trier les mots par fréquence dans une liste
Cette tâche consiste à créer une structure de données qui représente efficacement la fréquence des mots dans un élément donné. liste. Une approche simple implique deux listes : une pour les mots uniques et une autre pour les fréquences correspondantes. Pour trier les mots en fonction de la fréquence, nous devons exploiter les informations stockées dans la liste de fréquences.
Implémentation de Python à l'aide de Counter
Pour implémenter cela en Python sans utiliser de fonctions avancées des constructions comme des dictionnaires, nous pouvons exploiter la classe Counter du module collections. Cette classe assure le suivi de la fréquence des mots, offrant ainsi une solution simple.
L'extrait de code ci-dessous montre comment utiliser la classe Counter :
<code class="python">from collections import Counter list1 = ['apple', 'egg', 'apple', 'banana', 'egg', 'apple'] counts = Counter(list1)</code>
Ce code crée un objet Counter appelé counts qui contient des fréquences de mots. L'instruction print(counts) génère ce qui suit :
Counter({'apple': 3, 'egg': 2, 'banana': 1})
Par défaut, la classe Counter trie les mots par ordre alphabétique. Cependant, nous pouvons personnaliser le comportement de tri en fournissant une fonction clé comme argument à la méthode most_common(). Par exemple, pour trier les mots en fonction de la fréquence par ordre décroissant :
<code class="python">sorted_words = sorted(counts, key=lambda x: x[1], reverse=True)</code>
En résumé, la classe Counter fournit un moyen efficace de compter et de trier les mots en fonction de la fréquence, sans avoir besoin de structures de données complexes comme dictionnaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!