Python | Encuentra el elemento más frecuente en una lista

Dada una lista, encuentre el elemento más frecuente en ella. Si hay varios elementos que aparecen el número máximo de veces, imprima cualquiera de ellos.

Ejemplos: 

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

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

Enfoque n.° 1: enfoque ingenuo
Este es un enfoque de fuerza bruta en el que hacemos uso de bucle for para contar la frecuencia de cada elemento. Si la frecuencia actual es mayor que la frecuencia anterior, actualice el contador y almacene el elemento. 

Python3

# 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))
Producción: 

2

 

  
Enfoque n.º 2: enfoque Pythonic Naive
Haga un conjunto de la lista para que se eliminen los elementos duplicados. Luego encuentre el conteo más alto de ocurrencias de cada elemento en el conjunto y, por lo tanto, encontramos el máximo de él. 

Python3

# 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))
Producción: 

2

 

  
Enfoque n.º 3: Uso de Counter
Haga uso de Python Counter, que devuelve el recuento de cada elemento de la lista. Por lo tanto, simplemente encontramos el elemento más común usando el método most_common(). 

Python3

# 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))
Producción: 

2

 

Enfoque n.º 4: Buscando el modo 
Encontrar el elemento más frecuente significa encontrar el modo de la lista. Por lo tanto, usamos el método de modo de las estadísticas.  

Python3

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

2

 

Enfoque n.º 5: uso del diccionario de Python
Use el diccionario de Python para guardar el elemento como clave y su frecuencia como valor, y así encontrar el elemento más frecuente.  

Python3

# 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))
Producción: 

2

 

Enfoque #6: Uso de la biblioteca pandas. 
En caso de que se repitan varios valores. Imprime todos los valores.

Python3

import pandas as pd
List = [2, 1, 2, 2, 1, 3, 1]
 
# Create a panda DataFrame using the list
df=pd.DataFrame({'Number': List})
 
# Creating a new dataframe to store the values
# with appropriate column name
# value_counts() returns the count based on
# the grouped column values
df1 = pd.DataFrame(data=df['Number'].value_counts(), columns=[['Number','Count']])
 
# The values in the List become the index of the new dataframe.
# Setting these index as a column
df1['Count']=df1['Number'].index
 
# Fetch the list of frequently repeated columns
list(df1[df1['Number']==df1.Number.max()]['Count'])
Producción: 

[2,1]

 

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *