Python | Find most frequent element in a list
Given a list, find the most frequent element in it. If multiple elements appear a maximum number of times, print any one of them using Python.
Example
Make a set of the list so that the duplicate elements are deleted. Then find the highest count of occurrences of each element in the set and thus, we find the maximum out of it.
def most_frequent(List):
return max(set(List), key=List.count)
List = [2, 1, 2, 2, 1, 3]
print(most_frequent(List))
Output
2
Table of Content
Naive Approach to Find Frequent Elements in a List
This is a brute force approach in which we make use of for loop to count the frequency of each element. If the current frequency is greater than the previous frequency, update the counter and store the element.
def most_frequent(List):
counter = 0
num = List[0]
for i in List:
curr_frequency = List.count(i)
if(curr_frequency> counter):
counter = curr_frequency
num = i
return num
List = [2, 1, 2, 2, 1, 3]
print(most_frequent(List))
Output
2
Get Frequent Elements in a List using Counter
Make use of Python Counter which returns count of each element in the list. Thus, we simply find the most common element by using most_common() method.
from collections import Counter
def most_frequent(List):
occurence_count = Counter(List)
return occurence_count.most_common(1)[0][0]
List = [2, 1, 2, 2, 1, 3]
print(most_frequent(List))
Output
2
Get Frequent Elements in a List with Statistics Library
Finding most frequent element means finding mode of the list. Hence, we use mode method from statistics.
import statistics
from statistics import mode
def most_common(List):
return(mode(List))
List = [2, 1, 2, 2, 1, 3]
print(most_common(List))
Output
2
Find Frequent Elements in a List using Python dictionary
Use Python dictionary to save element as a key and its frequency as the value, and thus find the most frequent element.
def most_frequent(List):
dict = {}
count, itm = 0, ''
for item in reversed(List):
dict[item] = dict.get(item, 0) + 1
if dict[item] >= count :
count, itm = dict[item], item
return(itm)
List = [2, 1, 2, 2, 1, 3]
print(most_frequent(List))
Output
2