Python | Find most frequent element in a list

Given a list, find the most frequent element in it. If there are multiple elements that appear maximum number of times, print any one of them.

Examples:

Input : [2, 1, 2, 2, 1, 3]
Output : 2

Input : ['Dog', 'Cat', 'Dog']
Output : Dog

Approach #1 : Naive Appraoch



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.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Program to find most frequent 
# element in a list
  
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))

chevron_right


Output:

2

 
Approach #2 : Pythonic Naive appraoch

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.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Program to find most frequent 
# element in a list
def most_frequent(List):
    return max(set(List), key = List.count)
  
List = [2, 1, 2, 2, 1, 3]
print(most_frequent(List))

chevron_right


Output:

2

 
Approach #3 : 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.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Program to find most frequent 
# element in a list
  
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))

chevron_right


Output:

2

 
Approach #4 : By finding mode

Finding most frequent element means finding mode of the list. Hence, we use mode method from statistics.

filter_none

edit
close

play_arrow

link
brightness_4
code

import statistics
from statistics import mode
  
def most_common(List):
    return(mode(List))
    
List = [2, 1, 2, 2, 1, 3]
print(most_common(List))

chevron_right


Output:

2

 
Approach #5 : 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.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Program to find most frequent 
# element in a list
  
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))

chevron_right


Output:

2


My Personal Notes arrow_drop_up


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.