Home >Backend Development >Python Tutorial >How to Efficiently Count Element Frequencies in an Unordered Python List?
Getting the Frequency of Elements in an Unordered List
Consider an unordered list such as a = [5, 1, 2, 2, 4, 3, 1, 2, 3, 1, 1, 5, 2]. The goal is to determine the frequency of each unique value within the list. The desired output is similar to b = [4, 4, 2, 1, 2], indicating that the value 1 appears four times, 2 appears four times, 3 appears twice, 4 appears once, and 5 appears twice.
In Python, a convenient solution for this task is utilizing the collections.Counter class. In Python 2.7 and later, this class simplifies the process of counting the occurrences of elements in an unordered collection:
import collections a = [5, 1, 2, 2, 4, 3, 1, 2, 3, 1, 1, 5, 2] counter = collections.Counter(a)
The collections.Counter object, counter, holds the counts of each unique value in the list a. You can access the counts using various methods:
To obtain the counts in the order specified in the question, you can iterate over the keys in sorted order:
[counter[x] for x in sorted(counter.keys())]
If you're using Python 2.6 or earlier, you can download an implementation of collections.Counter from the provided link and use it in your code.
The above is the detailed content of How to Efficiently Count Element Frequencies in an Unordered Python List?. For more information, please follow other related articles on the PHP Chinese website!