Data structures‎ > ‎Lists‎ > ‎

List element frequencies

How to count the frequency of the elements in a list?

import collections

# create a list
x = ['A', 'A', 'B' ,'C', 'C', 'C', 'C', 'D', 'D', 'E']

# get frequencies
c=collections.Counter(x)
Counter({'C': 4, 'A': 2, 'D': 2, 'B': 1, 'E': 1})

c.keys()
['A', 'C', 'B', 'E', 'D']

c.values()
[2, 4, 1, 1, 2]

# print frequencies, sorted by list elements
for item in sorted(c.keys()):
    print( item + ': ' + str(c[item]) )
A: 2
B: 1
C: 4
D: 2
E: 1


# print top 3 most frequent elements
c.most_common(3)
[('C', 4), ('A', 2), ('D', 2)]

for k,n in c.most_common(3):
     print(k + ': ' + str(n))
C: 4
A: 2
D: 2




# convert c into a dictionary
d = dict(c)
{'A': 2, 'C': 4, 'B': 1, 'E': 1, 'D': 2}

# convert c into a list
n = c.most_common()
[('C', 4), ('A', 2), ('D', 2), ('B', 1), ('E', 1)]