Home >Backend Development >Python Tutorial >How to Count and Sort Words by Frequency in a List in Python

How to Count and Sort Words by Frequency in a List in Python

Barbara Streisand
Barbara StreisandOriginal
2024-10-21 21:38:31876browse

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn