Home >Backend Development >Python Tutorial >How to Count and Sort Words by Frequency in a List in Python
Counting and Sorting Words by Frequency in a List
This task involves creating a data structure that effectively represents the frequency of words in a given list. One straightforward approach involves two lists: one for unique words and another for corresponding frequencies. To sort the words based on frequency, we need to leverage the information stored in the frequency list.
Python Implementation Using Counter
To implement this in Python without using advanced constructs like dictionaries, we can harness the Counter class from the collections module. This class conveniently keeps track of word frequencies, providing a straightforward solution.
The code snippet below demonstrates how to utilize the Counter class:
<code class="python">from collections import Counter list1 = ['apple', 'egg', 'apple', 'banana', 'egg', 'apple'] counts = Counter(list1)</code>
This code creates a Counter object called counts that contains word frequencies. The print(counts) statement outputs the following:
Counter({'apple': 3, 'egg': 2, 'banana': 1})
By default, the Counter class sorts the words alphabetically. However, we can customize the sorting behavior by providing a key function as an argument to the most_common() method. For instance, to sort the words based on frequency in descending order:
<code class="python">sorted_words = sorted(counts, key=lambda x: x[1], reverse=True)</code>
In summary, the Counter class provides an efficient way to count and sort words based on frequency, without the need for complex data structures like dictionaries.
The above is the detailed content of How to Count and Sort Words by Frequency in a List in Python. For more information, please follow other related articles on the PHP Chinese website!