Maison  >  Article  >  développement back-end  >  Comment compter et trier les fréquences de mots en Python à l'aide de Counter ?

Comment compter et trier les fréquences de mots en Python à l'aide de Counter ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-21 21:37:02466parcourir

How to Count and Sort Word Frequencies in Python Using Counter?

Comptage et tri des fréquences de mots dans une liste

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn