# Counting the frequencies in a list

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:

```Explanation : Here 1 occurs 5 times, 2
occurs 4 times and so on...```

Recommended: Please try your approach on {IDE} first, before moving on to the solution.
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 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 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 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}`