Maison > Article > développement back-end > Comment compter et trier les fréquences de mots en Python à l'aide de Counter ?
Dans un projet récent, vous avez rencontré un problème où vous deviez compter les occurrences de mots dans une liste et les trier par fréquence, le mot apparaissant le plus fréquemment en début de liste. Même si vous aviez une idée de base de la solution, vous ne saviez pas comment l'implémenter efficacement dans Python 3.3.
Heureusement, la classe collections.Counter de Python fournit une solution simple et efficace à ce problème. Voici un exemple :
<code class="python">from collections import Counter # Create a list of words list1 = ['apple', 'egg', 'apple', 'banana', 'egg', 'apple'] # Use Counter to count word occurrences counts = Counter(list1) # Print the counts print(counts) # Counter({'apple': 3, 'egg': 2, 'banana': 1})</code>
Dans cet exemple, Counter crée un objet de type dictionnaire où les clés sont des mots et les valeurs sont leurs comptes. L'instruction print génère le nombre pour chaque mot unique.
Pour trier les mots en fonction de la fréquence, vous pouvez utiliser la méthode most_common() de Counter. Cette méthode renvoie une liste de tuples, où chaque tuple contient un mot et son nombre. Par défaut, la liste est triée par ordre décroissant de fréquence, ce qui signifie que le mot le plus fréquent sera au début.
Voici comment trier la liste des mots :
<code class="python"># Sort the words based on frequency sorted_words = [word for word, count in sorted(counts.most_common(), key=lambda x: x[1], reverse=True)] # Print the sorted list print(sorted_words) # ['apple', 'egg', 'banana']</code>
Dans ce code, trié, trie la liste des tuples par le deuxième élément (nombre) par ordre décroissant en utilisant l'argument reverse=True. Cela garantit que le mot le plus fréquent apparaît en premier dans la liste sorted_words.
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!