Counting the frequencies in a list using dictionary in Python
In this tutorial, you will learn to write a program in Python that will count the frequency of elements in a list using a dictionary. For a given list with multiple elements, we have to count the occurrence of each element in the list and display it as output. This can be done by creating a dictionary and using some built-in methods which will be discussed below.
Look at the input-output format to understand better.
Input: ['a', 'a', 'a', 'b','b']
Output: {'a': 3, 'b': 2}
To solve this problem we can follow these approaches-
- by iterating over the list and counting frequency
- using list.count() method
- using dict.get() method
Approach 1: An iterative approach
We will define a function that accepts the list as a parameter. Then we will create a dictionary where the list element is the key and its frequency will be the value. To get frequency we will traverse the list and check if the element is already present in the dictionary or not and keep a count accordingly.
Algorithm
Follow the algorithm to understand the approach better.
Step 1- Define a function that will count the frequency of elements in the list
Step 2- Create an empty dictionary
Step 3- Run a loop to traverse the list items
Step 4- To count the frequency, check if the element exists in the dictionary
Step 5- If yes, then increase the value present at the element key by 1,
Step 6- else add that element as key and set its value as 1
Step 7- Print the dictionary as the result
Python Program 1
Look at the program to understand the implementation of the above-mentioned approach. To check if the element of the list is already present in the dictionary or not we have used if conditional statement along with the in operator.
def CountFreq(li):
freq = {}
for item in li:
if (item in freq):
freq[item] += 1
else:
freq[item] = 1
print(freq)
li =[1, 1, 3, 2, 6, 5, 3, 1, 3, 3, 1, 4, 6, 4, 4, 2, 2, 2, 2]
CountFreq(li)
{1: 4, 3: 4, 2: 5, 6: 2, 5: 1, 4: 3}
Approach 2: using list.count()
The list.count()
method returns the total count of an element that is passed in it. Using this method we will store the count as value and the character as the key in the dictionary.
Algorithm
Follow the algorithm to understand the approach better.
Step 1- Define a function that will count the frequency of elements in the list
Step 2- Create an empty dictionary
Step 3- Run a loop to traverse the list items
Step 4- Use count to get the frequency of the elements and store them in the dictionary
Step 5- Print the dictionary as the result
Step 6- Declare a list and pass the list in the function
Python Program 2
Look at the program to understand the implementation of the above-mentioned approach. Using a for loop we will store the value returned by the count()
method in the dictionary.
def CountFreq(li):
freq = {}
for items in li:
freq[items] = li.count(items)
print(freq)
li =['a', 's', 'a', 's', 'c', 'c', 'c','b']
CountFreq(li)
{'a': 2, 's': 2, 'c': 3, 'b': 1}
Approach 1: using dict.get()
The dict.get()
method of the dictionary class returns the value of the specified key if the keys if from the dictionary. We can use this method instead of using the if-else condition which is discussed in the first approach, to get the frequency of list items.
Algorithm
Follow the algorithm to understand the approach better.
Step 1- Define a function that will count the frequency of elements in the list
Step 2- Create an empty dictionary
Step 3- Run a loop to traverse the list items
Step 4- Use get() and pass the list items in it to get the frequency
Step 5- Print the dictionary as the result
Step 6- Declare a list and pass the list in the function
Python Program 2
Look at the program to understand the implementation of the above-mentioned approach. We have created an empty dictionary and stored the list elements as keys and their frequency as values.
def CountFreq(li):
freq = {}
for items in li:
freq[items] = freq.get(items,0)+1
print(freq)
li =['a', 'a', 1, 1, 1, 'b', 'b', 'b', 2, 2, 2]
CountFreq(li)
{'a': 2, 1: 3, 'b': 3, 2: 3}
Conclusion
In this tutorial, we have seen three different approaches for calculating and finding the frequency of elements of a list using a dictionary in Python. We have used an iterative approach, the list.count()
method and the dict.get()
method to solve this problem.