# Counting the frequencies in a list using dictionary in Python

• Difficulty Level : Medium
• Last Updated : 17 Jun, 2021

Given an unsorted list of some elements(may or may not be integers), Find the frequency of each distinct element in the list using a dictionary.
Example:

```Input : [1, 1, 1, 5, 5, 3, 1, 3, 3, 1,
4, 4, 4, 2, 2, 2, 2]
Output : 1 : 5
2 : 4
3 : 3
4 : 3
5 : 2
Explanation : Here 1 occurs 5 times, 2
occurs 4 times and so on...```

The problem can be solved in many ways. A simple approach would be to iterate over the list and use each distinct element of the list as a key of the dictionary and store the corresponding count of that key as values. Below is the Python code for this approach:

## Python

 `# Python program to count the frequency of``# elements in a list using a dictionary` `def` `CountFrequency(my_list):` `    ``# Creating an empty dictionary``    ``freq ``=` `{}``    ``for` `item ``in` `my_list:``        ``if` `(item ``in` `freq):``            ``freq[item] ``+``=` `1``        ``else``:``            ``freq[item] ``=` `1` `    ``for` `key, value ``in` `freq.items():``        ``print` `(``"% d : % d"``%``(key, value))` `# Driver function``if` `__name__ ``=``=` `"__main__"``:``    ``my_list ``=``[``1``, ``1``, ``1``, ``5``, ``5``, ``3``, ``1``, ``3``, ``3``, ``1``, ``4``, ``4``, ``4``, ``2``, ``2``, ``2``, ``2``]` `    ``CountFrequency(my_list)`

Output:

``` 1 :  5
2 :  4
3 :  3
4 :  3
5 :  2```

Time Complexity:O(N), where N is the length of the list.

Alternative way: An alternative approach can be to use the list.count() method.

## Python

 `# Python program to count the frequency of``# elements in a list using a dictionary` `def` `CountFrequency(my_list):``    ` `    ``# Creating an empty dictionary``    ``freq ``=` `{}``    ``for` `items ``in` `my_list:``        ``freq[items] ``=` `my_list.count(items)``    ` `    ``for` `key, value ``in` `freq.items():``        ``print` `(``"% d : % d"``%``(key, value))` `# Driver function``if` `__name__ ``=``=` `"__main__"``:``    ``my_list ``=``[``1``, ``1``, ``1``, ``5``, ``5``, ``3``, ``1``, ``3``, ``3``, ``1``, ``4``, ``4``, ``4``, ``2``, ``2``, ``2``, ``2``]``    ``CountFrequency(my_list)`

Output:

``` 1 :  5
2 :  4
3 :  3
4 :  3
5 :  2```

Time Complexity:O(N2), where N is the length of the list. The time complexity list.count() is O(N) alone, and when used inside loop it will become O(N2).

Alternative way:An alternative approach can be to use the dict.get() method. This makes the program much more shorter and makes understand how get method is useful instead of if…else.

## Python

 `# Python program to count the frequency of``# elements in a list using a dictionary` `def` `CountFrequency(my_list):``    ` `   ``# Creating an empty dictionary``   ``count ``=` `{}``   ``for` `i ``in` `[``1``, ``1``, ``1``, ``5``, ``5``, ``3``, ``1``, ``3``, ``3``, ``1` `,``4``, ``4``, ``4``, ``2``, ``2``, ``2``, ``2``]:``    ``count[i] ``=` `count.get(i, ``0``) ``+` `1``   ``return` `count` `# Driver function``if` `__name__ ``=``=` `"__main__"``:``    ``my_list ``=``[``1``, ``1``, ``1``, ``5``, ``5``, ``3``, ``1``, ``3``, ``3``, ``1``, ``4``, ``4``, ``4``, ``2``, ``2``, ``2``, ``2``]``    ``print``(CountFrequency(my_list))`

Output:

`{1: 5, 5: 2, 3: 3, 4: 3, 2: 4}`

My Personal Notes arrow_drop_up