Home >Backend Development >Python Tutorial >How to Count and Sort Word Frequencies in Python Using Counter?
In a recent project, you encountered a problem where you needed to count the occurrences of words in a list and sort them by frequency, with the most frequently appearing word at the beginning of the list. While you had a basic idea of the solution, you were unsure how to implement it in Python 3.3 effectively.
Fortunately, Python's collections.Counter class provides a simple and efficient solution to this problem. Here's an example:
<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>
In this example, Counter creates a dictionary-like object where the keys are words, and the values are their counts. The print statement outputs the counts for each unique word.
To sort the words based on frequency, you can use the most_common() method of Counter. This method returns a list of tuples, where each tuple contains a word and its count. By default, the list is sorted in descending order of frequency, meaning the most frequent word will be at the beginning.
Here's how you can sort the list of words:
<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>
In this code, sorted sorts the list of tuples by the second element (count) in descending order using the reverse=True argument. This ensures that the most frequent word comes first in the sorted_words list.
The above is the detailed content of How to Count and Sort Word Frequencies in Python Using Counter?. For more information, please follow other related articles on the PHP Chinese website!