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))
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))
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))
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))
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))
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'])
[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